我正在尝试将@username与twitter相匹配。我正在使用的正则表达式:“([@])(\ S +)”对此非常有效。
但是限制如下 test@test.com与test.com匹配
现在我想完全排除test@test.com
但是,我的一些用户拥有用户名test@test.com,并且如果他们实际上在该电子邮件用户名前面有@,则希望包含它们。
所以@ test @ test.com应匹配
要点: 需要匹配:
@username
@test
@测试@ test.com
不想匹配:
test@test.com
答案 0 :(得分:2)
我建议使用负面的lookbehind,例如:
(?<!\S)@(\S+)
这不包括@foo
之前的任何可能空格,因此您可以毫无问题地替换它。
答案 1 :(得分:1)
作为答案,您不希望在文本中间检查@
,但前面需要一个空格,因此请使用(\s|^)+([@])(\S+)
答案 2 :(得分:0)
正则表达式看起来像这样:^@.*
^会将你锚定到行的开头或字符串。一定要看看OverAPI Regex,他们的备忘单非常好。
答案 3 :(得分:0)
^ @。* 上面的正则表达式与您要查找的内容相匹配