c# - + 在正则表达式中

标签 c# regex

我正在尝试从字符串中捕获一个值。字符串的格式应该是

01+XXXX

并且我想使用正则表达式捕获 XXXX。这是我想出的 -

01+\\s*(?<1>[.0-9]*)

但这行不通。有效的是 -

01+\\s*(?<1>[+.0-9]*)

唯一的区别是在字符类中添加了 +。我的主要问题是 - 为什么第二个表达式有效而第一个表达式无效?在第一个中,我寻找 01+,其余部分应该转到 [.0-9]。在我看来,第二个想要阅读 + 两次 - 这不是它在做什么吗?我对正则表达式还很陌生,所以我觉得我可能遗漏了一些小东西。

在此站点上 http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial它说 + 用于“重复一次或多次”。那么它是否尝试多次读取 01+?

最佳答案

它正在读取 1 一次或多次。也就是说,正则表达式 01+ 匹配 010110111

但是它不匹配+。如果要匹配文字 +,请为正则表达式编写 01\+01[+]

关于c# - + 在正则表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547257/

相关文章:

c# - 在 uwp 应用程序的后台监听剪贴板变化?

c# - C#中的类型转换对象数组成员导致异常

c# - NPOI中如何枚举excel工作表

javascript - Jquery 实时替换文本不起作用

c# - System.Drawing.Image 到 Emgu.CV.Mat

c# - 如何停止消息中心在 Xamarin.Forms 中多次停止订阅?

c# - 字符串函数 - 如果某个字符的实例位于两个其他字符之间,则替换该字符的实例

sql - 在 dbplyr SQL 查询中的 string::str_detect 中使用带有正则表达式的变量

Python - 如何将实例变量作为隐式参数一般传递给方法并使用递归方法

regex - 如何使用正则表达式查找文本是否包含特定单词?