+正则表达式

Ste*_*ing 1 c# regex

我试图从字符串中捕获一个值.字符串的格式应该是

01+XXXX
Run Code Online (Sandbox Code Playgroud)

我想使用正则表达式捕获XXXX.这就是我提出的 -

01+\\s*(?<1>[.0-9]*)
Run Code Online (Sandbox Code Playgroud)

但那不行.什么工作是 -

01+\\s*(?<1>[+.0-9]*)
Run Code Online (Sandbox Code Playgroud)

唯一的区别是将+添加到字符类中.我的主要问题是 - 为什么第二个表达式起作用而第一个表达式不起作用?在第一个中,我寻找01+,其余的应该是[.0-9].在我看来,第二个想读+两次 - 这不是它的作用吗?我对正则表达式很新,所以我觉得我可能会遗漏一些小东西.

在这个网站http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial它说+用于"重复一次或多次".那么它是不是一次尝试读取01+?

Mr *_*ter 6

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

但它与之不符+.如果你想匹配文字+,写01\+01[+]正则表达式.


Ken*_*rey 5

+是一个特殊的角色,意思是"一次或多次".在这种情况下,这意味着01,011,0111,等来代替01+.如果你想按字面意思使用它,你需要逃避它,如下所示:\+

注意:看起来您正在使用字符串,因此您需要双重转义: \\+

它在字符类([+])中工作,因为字符类从字面上理解大多数字符,包括\和的例外].