我想要一个匹配RACE
or字符串RACE_1
但不匹配RACE_2
and的正则表达式RACE_3
。我在Rubular上已经有一段时间了,现在试图弄清楚,但似乎无法满足我需要的所有条件。帮助表示赞赏。
问问题
369 次
4 回答
3
/^RACE(_1)?$/
于 2013-02-27T21:42:59.033 回答
3
RACE(_1)?\b
\b 表示单词的结尾,这会阻止匹配 RACE_2 中的 RACE。
于 2013-02-27T21:43:31.387 回答
2
您可以使用:
(\bRACE(_[1])?\b)
它需要 的一份副本RACE
,然后0 -> N
出现_[1]
. 在方括号中,您可以包含任何您想要的数字。示例:
(\bRACE(_[12345])?\b)
将匹配到RACE_5
. 然后,您可以自定义它甚至跳过数字,如果您想要[1245]
但RACE_1, RACE_2, RACE_4, RACE_5
不是RACE_3
。
于 2013-02-27T21:42:48.990 回答
1
/RACE(?!_)|RACE_1/
它有点黑客,但可能适合您的需求
编辑:这可能是一个更具体的,效果更好
/RACE(?!_\d)|RACE_1/
在这两种情况下,您都使用否定前瞻来强制 RACE 后面不能跟_
一个数字,但随后特别允许它后面有 or 语句。
此外,如果您计划仅搜索整个单词的所述匹配实例,请在前面/附加 \b 以指定单词边界。
/\bRACE(?!_\d)|RACE_1\b/
于 2013-02-27T21:40:02.673 回答