3

我创建了这个正则表达式来匹配字符串中所有以“@”开头的单词,@ 标记之前也可能有一些东西。它工作得很好,但它也可以捕获电子邮件地址,我想解决这个问题。

(?<=@)\w+\b

示例字符串为:

你好@bob,你好吗?@mark、@emma 和 @chief 和我在一起。给我发电子邮件 test@email.com!

你能帮我吗?

4

3 回答 3

3

您可以使用下一个表达式:

\B@\w+

它从非单词边界( \B) 开始。您也可以使用负前瞻来重写它,如下所示:

(?!\b)@\w+
于 2012-04-06T14:34:02.333 回答
0

测试@前面的空格

于 2012-04-06T14:32:03.143 回答
0

我的建议是这样的。

[\s]?\B@\w+

我已经在 RAD Software 的 Regex Designer 中对其进行了测试,它匹配每个以 @ 开头的单词。前面有或没有空格。

希望这有帮助;)

于 2012-04-06T15:17:43.190 回答