regex 在RE2语法中否定匹配?

lqfhib0f  于 2023-05-30  发布在  其他
关注(0)|答案(2)|浏览(337)

如何在RE2中为“匹配不以4或5开头的字符串”编写正则表达式?
在PCRE中,我使用^(?!4),但使用RE2 doesn't support that syntax

fjnneemd

fjnneemd1#

你可以使用这个正则表达式:

^[^45]

^匹配start,[^45]在start匹配除45以外的任何内容。

nqwrtyyt

nqwrtyyt2#

下面是针对单词串而不是单个字符的解决方案的一个变体。
我的方法是看两遍。
首先,找到所有匹配的项目,然后过滤它们以获得最终答案

示例

  • 测试数据
aaabaraaa
aaafooaaa
aaazooaaa
aaaqooaaa

假设我想找到中心文本(在“aaa”之间),它不应该是“bar”或“foo”

PCRE 1 => https://regex101.com/r/nJcbt1/1/很简单
使用re 2我会选择divide and conquer:到一个缩小范围的组,然后过滤。
用Golang => x1c 0d1x编写的解决方案
[1]PCRE:Perl Compatible Regular Expressions

相关问题