将字与两侧至少一个空格匹配

时间:2014-09-18 18:17:15

标签: regex

我需要匹配这些事件:

  • “组件是”
  • “in component”
  • “for component”

但我无法与之匹敌:

  • findForward( “componentSummary”);

因此,左侧或右侧的(引号内)周围至少需要至少1个空格,可能两者都有。

到目前为止我的正则表达式:

".*\s?[cC]omponent\s?.*"

但这使得两个空间都可选。

环境:这是在Eclipse IDE中,我必须搜索此正则表达式以查找相关代码。

3 个答案:

答案 0 :(得分:2)

有一个\b正则表达式锚点只能在单词的边缘匹配。

\bcomponent\b

这将匹配:

"component"
"component A"
"A component"
"A component is missing"

但不是:

"Acomponent"
"components"
"The components are missing"

答案 1 :(得分:1)

你说"这个词周围至少需要1个空格(引号内)"

如果是这样,您需要在引号的一侧或另一侧使用单词字符和空格字符:

"[\s\w]+(\b[Cc]omponent\b)[^"\n]*"|"[^"\n]*(\b[Cc]omponent\b)[\s\w]+"

Demo

答案 2 :(得分:0)

删除?标记。这是在正则表达式中将空格定义为可选的。