用正则表达式在每个句子中找到多个单词

时间:2017-08-29 11:53:39

标签: regex visual-studio

在Visual Studio 2017中,我想找到所有出现的

.start (dot start)

->start (arrow start)

但没有运气让它发挥作用。

我已经尝试了

(.)|(->)start 
(\.)|(->)start
(.)(->)start 
(\.)(->)start

如何找到附加到另一个单词的多个单词?

1 个答案:

答案 0 :(得分:1)

(.)|(->)start不起作用,因为它匹配任何字符((.))或(|)和->start(\.)|(->)start与文字.->start匹配。 (.)(->)start匹配->start后跟的所有字符。 (\.)(->)start匹配后跟->start的点。

匹配点或->后跟start使用

(?:\.|->)start

请参阅regex demo

<强>详情

  • (?:\.|->) - 匹配1个或2个替代方案的非捕获组:
    • \. - 一个文字点
    • -> - ->子字符串
  • start - 文字子字符串。

要将其作为整个单词进行匹配,您可以使用模式的变体:

 (?:\.|->)start\b

\B(?:\.|->)start\b

\b将强制匹配单词边界(下一个char应该是非单词char(符号,空格,标点符号)或字符串结尾,而\B需要在.-之前的非单词字符或字符串的开头。