C# 正则表达式在空格后取第一个集合,并希望使用相同的正则表达式删除$
我的输入字符串:- “$440765.12-108(e)\n3” 我想要的输出字符串为:- “440765.12” 我试过使用below-regex,它可以正常工作,但我无法使用相同的regex删除$,所以有人知道如何使用below-regex执行相同的任务吗C# 正则表达式在空格后取第一个集合,并希望使用相同的正则表达式删除$,c#,regex,C#,Regex,我的输入字符串:- “$440765.12-108(e)\n3” 我想要的输出字符串为:- “440765.12” 我试过使用below-regex,它可以正常工作,但我无法使用相同的regex删除$,所以有人知道如何使用below-regex执行相同的任务吗 Regex rx = new Regex(@"^(.*? .*?) "); var match = rx.Match(" $440,765.12 12-108(e)\n3 "); var text = match.Groups[1].V
Regex rx = new Regex(@"^(.*? .*?) ");
var match = rx.Match(" $440,765.12 12-108(e)\n3 ");
var text = match.Groups[1].Value;
使用上述正则表达式后的输出:-
440765.12美元
我知道我可以使用string.replace函数执行相同的任务,但我只想使用regex执行相同的任务。您可以使用
var result = Regex.Match(s, @"\$(\d[\d,.]*)")?.Groups[1].Value;
见:
详细信息
-匹配\$
字符$
-在组1((\d[\d,.]*)
)中捕获一个数字,然后捕获任何0个或更多数字、$1
或、
字符
\$(\d{1,3}(?:,\d{3})*(?:\.\d+)?)
看。这里,\d{1,3}(?:,\d{3})*(?:\.\d+)
匹配1、2或3个数字,后跟0或更多重复的、
和3个数字,后跟可选的
字符和1或更多数字序列
此外,如果存在除$
以外的任何货币符号,请将\$
替换为与任何货币符号匹配的货币符号:
\p{Sc}(\d{1,3}(?:,\d{3})*(?:\.\d+)?)
看看吧。@KARAN很高兴是这样。为了防止匹配的上下文比您的示例中更混乱,我又添加了两个表达式。