从正则表达式中排除@后面的任何单词

时间:2017-04-30 01:32:35

标签: regex vb.net

我正在尝试在VB.NET中使用regex.replace函数,我想要排除任何带有@符号的单词。目前,我使用的模式是“/ b”&术语和“/ b”(其中Term是我要替换的任何单词)。

感谢。

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

\b(?<!@)[^@\s]+(?!@)\b

Regex Demo

解释

  1. [^@\s]+这将排除任何包含&#39; @&#39;内或只是的单词 在它之后。以^开头的字符类[^]表示否定字符类中的任何内容。因此,^ inside []并不意味着字符串的开头。
  2. 许多风味词边界\b包括@作为边界值。 因此,您需要确保\b并不认为@为a 边界。因此引入了前瞻和后视 这里。
  3. 第一个\b(?<!@)确保字边界,但不是@
  4. 最后(?!@)\b确保单词有效但不是@