我想要一个匹配RACE
或RACE_1
字符串的正则表达式,但不是RACE_2
和RACE_3
。我已经在Rubular了一段时间,现在试图解决它,但似乎无法满足我需要满足的所有条件。感谢帮助。
答案 0 :(得分:3)
/^RACE(_1)?$/
答案 1 :(得分:3)
RACE(_1)?\b
\ b表示单词的结尾,并且阻止在RACE_2中匹配RACE。
答案 2 :(得分:2)
您可以使用:
(\bRACE(_[1])?\b)
它需要RACE
的一份副本,然后0 -> N
_[1]
次出现(\bRACE(_[12345])?\b)
。在方括号中,您可以包含任何您想要的数字。例:
RACE_5
将匹配[1245]
。如果您希望RACE_1, RACE_2, RACE_4, RACE_5
RACE_3
而不是{{1}},则可以对其进行自定义甚至跳过号码。
答案 3 :(得分:1)
/RACE(?!_)|RACE_1/
它有点像黑客,但可能符合您的需求
编辑:
这可能是更具体的一个更好的
/RACE(?!_\d)|RACE_1/
在这两种情况下,您都使用否定前瞻来强制执行_
和一个数字后面不能跟随RACE,但是然后使用或后面的语句特别允许它。
此外,如果您计划仅搜索所述匹配的整个单词的实例,请使用\ b前缀/附加以指定单词边界。
/\bRACE(?!_\d)|RACE_1\b/