正则表达式:匹配所有包含某个词的词

Regex: Match all the words that contains some word

我想匹配所有包含单词 "oana" 的单词。我把"OANA"放在了一些单词的开头,中间和结尾的大写字母

blah OANAmama blah aOANAtata aOANAt msmsmsOANAasfasfa mOANAmsmf OANAtata OANA3 oanTy

无论如何,我做了一个正则表达式,但它不是很好,因为它没有 select 所有包含 "oana"

的单词

\b\w+(oana)\w+\b

谁能给我另一个解决方案?

您需要使用不区分大小写的标志并将 + 替换为 *:

/\b\w*oana\w*\b/i

参见 regex demo(可以使用也可以不使用全局修饰符,具体取决于正则表达式引擎)。在某些正则表达式引擎中,不区分大小写的修饰符可以作为内联选项传递 - (?i)\b\w*oana\w*\b.

这里,

  • \b - 单词边界
  • \w* - 0+ 个单词字符
  • oana - 单词中所需的字符串
  • \w* - 0+ 个单词字符
  • \b - 单词边界