C# .NET正则表达式-特定于字符串,其中包含更改的数字
我刚开始在C#NET中使用regex。假设我有一个字符串如下C# .NET正则表达式-特定于字符串,其中包含更改的数字,c#,.net,regex,string,C#,.net,Regex,String,我刚开始在C#NET中使用regex。假设我有一个字符串如下 "Working on log #4" 在这个字符串中,我们可以看到数字(4)的变化。如何使用正则表达式从字符串中仅提取该数字 我要确保字符串与第一部分匹配: "Working on log #" 然后从中提取整数 另外,我知道我可以使用string.Split()或.Substring等来实现这一点。我只是想知道如何使用正则表达式来实现这一点 谢谢 RegEx rgx=新的RegEx(“处理日志#[0-9]”是您要使用的模式。第
"Working on log #4"
在这个字符串中,我们可以看到数字(4)的变化。如何使用正则表达式从字符串中仅提取该数字
我要确保字符串与第一部分匹配:
"Working on log #"
然后从中提取整数
另外,我知道我可以使用string.Split()或.Substring等来实现这一点。我只是想知道如何使用正则表达式来实现这一点
谢谢
RegEx rgx=新的RegEx(“处理日志#[0-9]”代码>是您要使用的模式。第一部分是字符串文字,[0-9]表示字符可以是0到9之间的任何值。如果允许多个数字,则将其更改为[0-9]{x}
,其中x
是重复次数,或者[0-9]+
作为+
在任何字符表示允许该字符中的一个或多个之后
您也可以只执行string.StartsWith(“在日志上工作”)
,然后在
上拆分,并使用int.TryParse()
和第二个值来确认它实际上是一个有效的整数。试试这个:^(?)?
()
创建一个匹配组,以便您能够提取该部分。
\d
匹配任何数字。
+
表示“查看前面的标记,匹配一次或多次”,因此它将使其匹配一个或多个数字
因此,总体而言,您捕获的是一个包含一个或多个数字的组,其中该组位于“处理日志”之后。
捕获组是解决方案:
"Working on log #(?<Number>[0-9]+)"
“处理日志(?[0-9]+)”
然后你可以使用属性访问匹配的组。
这不会在日志34中执行“.MordSKONE在我完成编辑之前是真的:”确实,考虑我的评论不再有效:A:就要提交提交这个了!所以\d会导致无法识别的转义序列,有什么想法吗?在C中,你必须转义`,所以使用\\d`。你很容易找到可能重复的转义序列……我浏览了教程,很难理解各种解释。我明白这很简单,我只是想看看别人会怎么解释。不过我很欣赏你的洞察力!
"Working on log #(?<Number>[0-9]+)"