我试图找到所有单个数字(使用vim):
这是正确的
7
word7
7word
7.
0.7
一,7
word7word
字7字
7-7
但不是
7.7
7,7
77
任何人都可以帮我解释正则表达式吗?
编辑:
可能我已经在下面关于原子分组的答案的帮助下找到了它.Vim确实支持它:
\(\d\.\|\d\,\|\d\)\@<!\d\(\.\d\|\,\d\|\d\)\@!
你可以试试这个:
\v%(\d+%(\.|,))@<!\d@<!\d+@>%(%(\.|,)\d)@!
Run Code Online (Sandbox Code Playgroud)
说明:
\v 变得非常神奇:不需要很多反斜杠%标志是可选的(使组括号不匹配)(\d+(\.|,)@<!:之前没有数字.要么 ,\d@<! :前面没有数字(请确保我们位于第一位数字@>确保,见:help /\@>)((\.|,)\d)@! :之后,没有点或逗号后跟一个数字.