正则表达式匹配字符串前缀,但不包含多个包含该前缀的字符串

时间:2018-11-28 11:01:47

标签: regex

我需要一个匹配的正则表达式

any_

但是与下面的任何字符串都不匹配

any_group1
any_group2

我尝试了

(?=.*any_.*)^((?!any_group1).)*$^((?!any_group1).)*$

2 个答案:

答案 0 :(得分:2)

这应该使用负向后看做到这一点:

\bany_.*(?<!group[1-2])\b$

Regex 101

答案 1 :(得分:0)

您还可以使用否定的前行(?!来断定右边的不是group1或group2:

\bany_(?!group[12]\b)

Regex demo

这将匹配:

  • \b字边界
  • any_字面上匹配
  • (?!group[12]\b)断言右边的否定词不是第1组或第2组,后面是单词边界