尝试使用Eclipse正则表达式搜索在特定用户不是user.a@domain.com或user.b@domain.com的文件中查找电子邮件地址(即anything@domain.com)。
需要使用粗体项下面的字符串,而需要跳过其他地址: 的 bob@domain.com 下,user.b @ domain.com,的 andy@domain.com 下,user.a @ domain.com
我已经达到了以下目的但是我认为不应该这样做。 \ B(?!user.b)\ w*@domain.com \ B'/ P>
答案 0 :(得分:3)
^(?!user\.b@domain.com|user\.a@domain.com).*[\w]+[\w]?[\w./]+@[\w_]+\.[a-zA-Z]+\.?[a-zA-Z]{2,4}$
这将查找所有电子邮件地址,无论域名如何,只需保留附加到列表中即可
user\.b@domain.com|user\.a@domain.com|
个更多电子邮件地址并转义"."
答案 1 :(得分:0)
我不确定您的确切要求,但这将匹配任何非形式用户。[字母和数字] @ domain.com(并且左侧不包含.
)。
(?<!user\.)\w+@domain\.com\b
您的原件有几个问题:
.
是元字符,所以你必须逃脱它。(?! ... )
构造。更新:here is the Perl regex documentation。一般而言,Eclipse遵循这一点。
进一步更新:只是为了澄清,我的代码与任何包含@左边的点的电子邮件地址都不匹配。如果你需要将其他地址与点匹配,由于lookbehind的性质,它实际上开始变得非常复杂。此修改版本将匹配地址与除用户之外的任何内容。后跟1到5个字符。
[\w\.]+(?<!user\.\w{1,5})@domain\.com\b
答案 2 :(得分:-1)
实际上,我们不建议使用正则表达式检查电子邮件地址,您可以做的最好的事情就是发送确认电子邮件。我同意,这并不总是可行的,但这是你可以拥有的最可靠的方式。
请参阅http://davidcelis.com/blog/2012/09/06/stop-validating-email-addresses-with-regex/中的详细信息以及随附的reddit讨论http://de.reddit.com/r/programming/comments/zgumq/stop_validating_email_addresses_with_regex/