正则表达式,用于查找包含特定子字符串

时间:2018-01-24 22:38:24

标签: regex search nlp regular-language

我正在尝试为一组单词编写正则表达式。我想只选择具有一个或多个子串重复的单词。

例如,在以下词中:

  

香蕉 baba nano 娜娜 nanna

我只想选择单词banana,baba,nana和 NOT 想要选择nano和nanna。我想在这里找到的是包含 ba na 一次或多次的单词,而不包含除 ba的一个或多个实例以外的任何单词的单词 na 。因此,不应该选择nanna,因为它在两个 na 之间包含额外的 n

我尝试了很多正则表达式,却找不到确切的结果。 到目前为止,这是我坚持的正则表达式。

  

\ W +(BA | NA)

这也选择了我不想要的nanna。 我是regex的新手,已经尝试了很多示例和教程,并且还看了一会儿。真的需要帮助。

P.S我正在使用this website来测试我的正则表达式

P.S.S如果您计划向某个问题投票,请留下反馈,以便我能更好地了解我哪里出错了。

1 个答案:

答案 0 :(得分:1)

\b(?:[bn]a)+\b

演示:https://regex101.com/r/iFRfBC/1

说明:

\b - 匹配“单词边框”,防止在匹配项之前(或跟随,在模式结尾处)附加字母。

(?: ... )+ - 一个(非捕获)组,量化一次或多次。

[bn]a - 文字bn,后跟a