ElasticSearch
Lucene正则表达式引擎不支持任何类型的环视。在ES正则表达式的文件是比较模糊的说法
匹配一切都像.*
很慢,以及使用环视正则表达式(这不仅暧昧,而且还错误的,因为lookarounds,明智地使用时,可以大大加快正则表达式匹配)。
由于您要匹配包含
f04和不包含的任何字符串
z,因此您实际上可以使用
[^z]*fo4[^z]*
细节
[^z]*
-除0以外的任何其他字符z
fo4
-fo4
子串[^z]*
-除以外的任何0+个字符z
。
如果您有一个多字符字符串要“排除”(例如,
z4而不是
z),则可以使用带有补码运算符的方法:
.*f04.*&~(.*z4.*)
这意味着几乎相同,但不支持换行符:
.*
-尽可能使用除换行符以外的任何字符f04
--f04
.*
-尽可能使用除换行符以外的任何字符&
-和~(.*z4.*)
-除具有z4



