如何在RE2中为“匹配不以4或5开头的字符串”编写正则表达式?在PCRE中,我使用^(?!4),但使用RE2 doesn't support that syntax。
^(?!4)
fjnneemd1#
你可以使用这个正则表达式:
^[^45]
^匹配start,[^45]在start匹配除4或5以外的任何内容。
^
[^45]
4
5
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
2条答案
按热度按时间fjnneemd1#
你可以使用这个正则表达式:
^
匹配start,[^45]
在start匹配除4
或5
以外的任何内容。nqwrtyyt2#
下面是针对单词串而不是单个字符的解决方案的一个变体。
我的方法是看两遍。
首先,找到所有匹配的项目,然后过滤它们以获得最终答案
示例
假设我想找到中心文本(在“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