c# – 正则表达式匹配前面没有字母的数字

我希望匹配“100”,“1.1”,“5.404”之类的数字,如果它们不包含前面的字母,如下所示:“V102”.

这是我目前的正则表达式:

(?<![A-Za-z])[0-9.]+

这应该匹配任何字符0-9.如果不存在前缀(A-Za-z),则重复一次或多次.

但它的作用是匹配V102,如02,所以它只是将V和另外一个字母切掉,然后其余部分适合它,而实际上根本不应该匹配那个案例.我怎样才能抓住所有数字,然后检查前缀是否不存在?

最佳答案
在负面的lookbehind中添加数字和小数点:

(?<![A-Za-z0-9.])[0-9.]+

这将强制所有匹配以非数字和非字母(即空格或其他分隔符)开头.这样,数字的结尾也不是有效的匹配.

演示:http://www.rubular.com/r/EDuI2D9jnW

转载注明原文:c# – 正则表达式匹配前面没有字母的数字 - 代码日志