我正在尝试从字符串中捕获一个值。字符串的格式应该是
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+
匹配 01
或 011
或 0111
等
但是它不匹配+
。如果要匹配文字 +
,请为正则表达式编写 01\+
或 01[+]
。
关于c# - + 在正则表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547257/