Regex 如何仅选择特定的单词?
使用字符串Regex 如何仅选择特定的单词?,regex,Regex,使用字符串ant-apple-bat我只想选择ant和bat,而不选择苹果或任何空白 我试过一些不同的方法,比如 \bant\b\bbat\b 或 或 或 或 或 我知道上面的例子很愚蠢,但我只是在一个正则表达式测试仪上胡闹,试图弄明白。我以前做过regex,我知道了,但似乎不记得我是怎么做的。选择“蚂蚁”和“蝙蝠”似乎很简单,但显然不是。是否有办法取消选择匹配项或删除部分匹配项?使用非捕获组进行替换: (?:\bant\b|\bbat\b) 我想你理解错了。单个正则表达式匹配将仅匹配连续文
ant-apple-bat
我只想选择ant
和bat
,而不选择苹果或任何空白
我试过一些不同的方法,比如
\bant\b\bbat\b
或
或
或
或
或
我知道上面的例子很愚蠢,但我只是在一个正则表达式测试仪上胡闹,试图弄明白。我以前做过regex,我知道了,但似乎不记得我是怎么做的。选择“蚂蚁”和“蝙蝠”似乎很简单,但显然不是。是否有办法取消选择匹配项或删除部分匹配项?使用非捕获组进行替换:
(?:\bant\b|\bbat\b)
我想你理解错了。单个正则表达式匹配将仅匹配连续文本。一个简单的正则表达式,如带有match ant或bat的
ant | bat
。但是,如果您想匹配ant和bat,忽略中间的文本将不起作用
将正则表达式与python或java等编程语言一起使用时,您可以循环执行多个匹配项并相应地执行操作。如果您只需要两个不同的单词,则如下所示:
\b(ant|bat)\b
\b
是一个单词边界
括号是一个组
管道|
是一个or语句
- 词界
- 后跟单词
或单词ant
bat
- 以单词边界结尾
单词边界可能是您所期望的,空格、行尾、标点符号对于非编码组
(ant)(?:apple)(bat)
或\b(?:ant | bat)\b
@WSimm下面的答案解决了您的问题吗?如果是,请参阅或尝试\b(ant | bat)\b
。
ant(?:.*)bat
ant(?:\sapple\s)bat
(ant)*[^a-z\s]*(bat)
(?:\bant\b|\bbat\b)
\b(ant|bat)\b