我有一个我想要检查的文件。大多数数字都在他们面前。我想找到所有没有@前面的数字。他们可能有空间,或者他们可能有另一个角色。我不确定,因为我还没有找到它们。
所以对于这个文本
First @ 30 line
Second @ 40 line
找到四条a4线
我想找到" 4"。与" a"在最后一行的前面。
这听起来很简单,但是使用RegEx101或Notepad ++我无法执行搜索。
我已尝试[^@]\d+
,但也找到了30和40。我尝试[^\@]\d+
的结果相同。如果我[^a]\d+
它正确找不到" a4"。很明显@符号具有一些特殊意义,但我找不到任何关于此的文档。
如何进行此搜索?
答案 0 :(得分:3)
问题在于3
不是@
。您正在搜索@
以外的任何字符,后跟任意(非零)位数。 3
是@
以外的字符,0
是非零数字。因此匹配。
您需要排除数字以及@
:[^@\d]\d+
。
注意:这仍然需要数字前的字符。你说你想要的任何数字都不是@
之前的数字。如果某个数字位于一行的开头,则不会以@
开头。但是,它之前没有任何其他字符,因此您需要调整正则表达式才能匹配。
负面的背后隐喻适用于此:(?<![@\d])\d+
。这会查找\d+
,除非前面有@
或其他数字。