正则表达式查找:4.55$、5$、$45、$7.86
本文关键字:正则表达式 查找 | 更新日期: 2023-09-27 18:35:06
在字符串中罚款 4.55$、5$、$45、$7.86 的正则表达式是什么?
我用过@"(?<='$)'d+('.'d+)?"
但它只找到$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!
。