如何仅选择特定单词?

时间:2019-10-25 16:37:24

标签: regex

使用字符串ant apple bat,我只选择antbat,而不选择苹果或任何空白。

我尝试了一些类似的事情;

\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”似乎很简单,但显然不是。有什么方法可以取消选择匹配项或删除部分匹配项?

3 个答案:

答案 0 :(得分:2)

交替使用非捕获组:

(?:\bant\b|\bbat\b)

答案 1 :(得分:0)

我想你理解错了。单个正则表达式匹配项将仅匹配连续文本。一个简单的正则表达式,例如ant|bat,带有匹配的蚂蚁或蝙蝠。但是,如果您想匹配“蚂蚁”和“蝙蝠”,则忽略两者之间的文本将不起作用。

在将正则表达式与python或java之类的任何编程语言一起使用时,您将遍历多个匹配项并相应地执行操作。

答案 2 :(得分:0)

如果您只想使用两个不同的单词,则如下所示:

\b(ant|bat)\b

\b是一个单词边界 括号是一个组 管道|是or语句

  • 单词边界
  • 后跟单词ant或单词bat
  • 以单词边界结尾

单词边界可能是您期望的,空格,行尾,标点符号