C# 帮我建立一个正则表达式
坦率地说,我对正则表达式一无所知,更不用说构建它们了。我在读一个字符串,它可以包含任何字符和数字的组合。我可以肯定的是,在字符串的某个地方,会有一个数字后跟%(1%,13%等),我想从字符串中提取这个数字 例如,C# 帮我建立一个正则表达式,c#,regex,C#,Regex,坦率地说,我对正则表达式一无所知,更不用说构建它们了。我在读一个字符串,它可以包含任何字符和数字的组合。我可以肯定的是,在字符串的某个地方,会有一个数字后跟%(1%,13%等),我想从字符串中提取这个数字 例如, [05:37:25] Completed 21% //want to extract 21 [05:32:34] Completed 18000000 out of 50000000 steps (36%). //want to extract 36 我猜我应该使用regex.Re
[05:37:25] Completed 21% //want to extract 21
[05:32:34] Completed 18000000 out of 50000000 steps (36%). //want to extract 36
我猜我应该使用regex.Replace或regex.Split,但除此之外,我不确定。任何帮助都将不胜感激。您应该能够使用类似
“(\d+)%”
。这将匹配任意数量的连续数字字符,然后是百分号,并将捕获实际数字,以便您可以提取和分析它。在Regex.Match()中使用它,并浏览结果的Matches数组(我认为它将是数组中的第二个元素,索引1)
如果需要小数点,请使用“(\d+(\.\d+)?%””,它将匹配一组数字,后跟一个小数点,然后是另一组数字。所需的正则表达式是:
/(\d+)%/
这将捕获百分号前面的任意位数。([\d]+)(%)
- 括号将结果分组
提供任意数字,重复一次或多次[\d]+
- “%”只是一个文字
“%”
实例
我不完全确定如何使这个C#具体化,但我相信你能弄明白-P
很可能您需要使用双反斜杠
(\\)
,而我只有一个。谢谢。我不需要担心小数点。我去试一下,然后回来。效果很好。谢谢。@xbonez,别忘了将答案标记为正确答案:)