C# 帮我建立一个正则表达式

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

坦率地说,我对正则表达式一无所知,更不用说构建它们了。我在读一个字符串,它可以包含任何字符和数字的组合。我可以肯定的是,在字符串的某个地方,会有一个数字后跟%(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.Replace或regex.Split,但除此之外,我不确定。任何帮助都将不胜感激。

您应该能够使用类似
“(\d+)%”
。这将匹配任意数量的连续数字字符,然后是百分号,并将捕获实际数字,以便您可以提取和分析它。在Regex.Match()中使用它,并浏览结果的Matches数组(我认为它将是数组中的第二个元素,索引1)

如果需要小数点,请使用“(\d+(\.\d+)?%””,它将匹配一组数字,后跟一个小数点,然后是另一组数字。

所需的正则表达式是:

/(\d+)%/
这将捕获百分号前面的任意位数。

([\d]+)(%)

  • 括号将结果分组
  • [\d]+
    提供任意数字,重复一次或多次
  • “%”只是一个文字
您需要确保只提取第一个分组。此外,您还需要确保该行中没有其他
“%”
实例

我不完全确定如何使这个C#具体化,但我相信你能弄明白-P
很可能您需要使用双反斜杠
(\\)
,而我只有一个。

谢谢。我不需要担心小数点。我去试一下,然后回来。效果很好。谢谢。@xbonez,别忘了将答案标记为正确答案:)