我试图从字符串中捕获一个值.字符串的格式应该是
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+?
这+是一个特殊的角色,意思是"一次或多次".在这种情况下,这意味着01,011,0111,等来代替01+.如果你想按字面意思使用它,你需要逃避它,如下所示:\+
注意:看起来您正在使用字符串,因此您需要双重转义: \\+
它在字符类([+])中工作,因为字符类从字面上理解大多数字符,包括\和的例外].