C# 要查找的正则表达式:4.55美元、5美元、45美元、7.86美元

C# 要查找的正则表达式:4.55美元、5美元、45美元、7.86美元,c#,regex,C#,Regex,在一个字符串中,什么样的正则表达式将被罚款4.55$、5$、45$、7.86美元 我用了@(? 在一个字符串中,什么样的正则表达式将被罚款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 {

在一个字符串中,什么样的正则表达式将被罚款4.55$、5$、45$、7.86美元

我用了
@(?
在一个字符串中,什么样的正则表达式将被罚款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));
    }
}

搜索输出,结果为…True!

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

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 stregex=@“\$(?。

我会在字符串中使用类似以下表达式“Globaly”的内容

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

这似乎很管用:

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

@((?我使用了@)(?我认为金额可能是任意的。在正则表达式中硬编码它们不太可能是OP需要的。不管怎样,如果他要求“找出字符串中的4.55美元、5美元、45美元、7.86美元?”我的答案完全符合要求。你们现在可以投票给我了。@ta.speot.is,我通常投票给那些把自己放在OP上下文中的答案,而不仅仅是盲目地和文学地回答问题。所以我个人不会投票给你们的答案。成功的巨魔是成功的。我认为有时笑一下是可以的,但你们必须考虑一下这个网站是如何使用的。有人可能会来用你的例子。你是不是有意要用拖网?别忘了避开这个点。
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());
}