使用字符串ant apple bat
,我只选择ant
和bat
,而不选择苹果或任何空白。
我尝试了一些类似的事情;
\bant\b\bbat\b
或
ant\bbbat\b
或
(\b(ant)\b.*\b(bat)\b)
或
ant(?:.*)bat
或
ant(?:\sapple\s)bat
或
(ant)*[^a-z\s]*(bat)
我知道上面的例子很愚蠢,但是我只是在找一个正则表达式测试器来弄弄它。我以前做过正则表达式,但我想通了,但似乎不记得我是怎么做的。仅选择“ ant”和“ bat”似乎很简单,但显然不是。有什么方法可以取消选择匹配项或删除部分匹配项?
答案 0 :(得分:2)
交替使用非捕获组:
(?:\bant\b|\bbat\b)
答案 1 :(得分:0)
我想你理解错了。单个正则表达式匹配项将仅匹配连续文本。一个简单的正则表达式,例如ant|bat
,带有匹配的蚂蚁或蝙蝠。但是,如果您想匹配“蚂蚁”和“蝙蝠”,则忽略两者之间的文本将不起作用。
在将正则表达式与python或java之类的任何编程语言一起使用时,您将遍历多个匹配项并相应地执行操作。
答案 2 :(得分:0)
如果您只想使用两个不同的单词,则如下所示:
\b(ant|bat)\b
\b
是一个单词边界
括号是一个组
管道|
是or语句
ant
或单词bat
单词边界可能是您期望的,空格,行尾,标点符号