正则表达式查找:4.55$、5$、$45、$7.86

本文关键字:正则表达式 查找 | 更新日期: 2023-09-27 18:35:06

在字符串中罚款 4.55$、5$、$45、$7.86 的正则表达式是什么?

我用过@"(?<='$)'d+('.'d+)?"但它只找到$45$7.86

正则表达式查找:4.55$、5$、$45、$7.86

这似乎工作正常:

@"((?<='$)'d+('.'d+)?)|('d+('.'d+)?(?='$))"

代码示例:

string source = "4.55$, 5$, $45, $7.86";
string reg = @"((?<='$)'d+('.'d+)?)|('d+('.'d+)?(?='$))";
MatchCollection collection = Regex.Matches(source, reg);
foreach (Match match in collection)
{
    Console.WriteLine(match.ToString());
}

这有点笨拙,但这里有另一个表达式(带有一些解释性代码)可能适合您:

string strRegex = @"'$(?<Amount>'d[.0-9]*)|(?<Amount>'d[.0-9]*)'$";
Regex myRegex = new Regex(strRegex);
string strTargetString = @"4.55$, 5$, $45, $7.86 ";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
    if (myMatch.Success)
    {
        //Capture the amount
        var amount = myMatch.Groups["Amount"].Value;
    }
}

实际上,它的作用是在金额的开头或结尾定义一种匹配 $ 的交替方式。

我已经使用正则表达式英雄对此进行了测试。

我会在字符串中使用以下表达式"全局"

string expression = @"('$'d('.'d*)?|'d('.'d*)?'$)";

字符串中罚款 4.55$、5$、$45、$7.86 的正则表达式是什么?

要查找4.55$, 5$, $45, $7.86您可以使用 4.55'$, 5'$, '$45, '$7.86 .

编辑 一些评论员担心人们会在不理解的情况下使用它。我举一个例子,以便能够理解。

using System;
using System.Text.RegularExpressions;
public class Test
{
    public static void Main()
    {
        string search = @"The quick brown fox jumped over 4.55$, 5$, $45, $7.86";
        string regex = @"4.55'$, 5'$, '$45, '$7.86";
        Console.WriteLine("Searched and the result was... {0}!", Regex.IsMatch(search, regex));
    }
}

输出为 Searched and the result was... True!