如何使用Regex搜索不以另一个字符串开头的字符串

时间:2019-06-14 23:31:14

标签: regex notepad++

我正在尝试查找包含搜索字符串一部分但也不以“ 00000000”开头的所有行。我正在Notepad ++中使用此表达式,但还将在我们使用的另一个自定义应用程序中使用它,该应用程序也使用正则表达式。

我想搜索118200000 00000000 0000000000,但是如果它前面有00000000,则不想包含这些行。例如,如果我有:

01905402834          000000017090156300000000000118200000                               00000000   0000000000
01205028361          000000017090156300020381274118200000                               00000000   0000000000

不想要提取第一行,因为它在00000000之前有1182,但我只希望第二行。

我想尝试(?!00000000)118200000 00000000 0000000000,但是可以匹配所有内容,因此很明显我丢失了某些内容或滥用了表达式。

2 个答案:

答案 0 :(得分:4)

此模式(?!00000000)118200000 00000000 0000000000断言直接在右边的不是00000000。总是匹配118200000

如果支持负向后看,则可以在(?<!00000000)之前声明左边的不是00000000

(?<!00000000)118200000 00000000 0000000000

Regex demo

答案 1 :(得分:1)

我的猜测是,您只希望获得不包含00000000的行,为此,我们可能会以类似于以下内容的表达式开头:

^(?!.*\b00000000\b.*).*

Demo