我有这个:
(adrian)(@mazur.com)|(^(adrian)\+(.*)@mazur.com$)
它只是部分匹配:
adrian@mazur.com
adrian+whatever@mazur.com
adrian+what.ev.er@mazur.com
a.d.r.i.a.n@mazur.com
a.d.r.i.a.n+whatever@mazur.com
a..drian@mazur.com
它们也无法匹配:
patryk@mazur.com
patryk+whatever@mazur.com
patryk+what.ev.er@mazur.com
p.a.t.r.y.k@mazur.com
p.a.t.r.y.k+whatever@mazur.com
p..adtryk@mazur.com
p.dra..us...@mazur.com
或其他像danuta,micheal,ryan,sean等。
如何让它忽略我名字之间的点(。)? 我使用这个工具来测试正则表达式:http://74.50.60.193/它是http://www.rubular.com/但是它不适合我,所以我也放了IP。
答案 0 :(得分:0)
所有当前的答案都有其模式中的逻辑缺陷。
根据OP的问题结合OP的持续评论以及OP的上一个问题,有效的字符串将:
adrian
开始,可能在名称中的每个/每个字母之前或之后有零个或多个点。adrian
子字符串可以选择后跟一个加号,然后是零个或多个非空白字符。您正在寻找:(Demo)
^(\.*a\.*d\.*r\.*i\.*a\.*n\.*(?:\+[^@\s]*)?)(@mazur\.com)$
答案 1 :(得分:-1)
你可以试试这样的东西虽然它不是最好的解决方案(你还需要全局旗帜来捕捉所有的比赛):
(a\.*?d\.*?r\.*?i\.*?a\.*?n)\+?(.*)(@mazur\.com)
答案 2 :(得分:-2)
[^ \n]{1,}(@mazur.com)
这表示接受除空格或新行之外的任何内容,从1次到多次,然后是您的网站名称。我将它从0更改为1,因为我认为没有人会收到一封电子邮件而没有领先的东西。
但是,如果它除了阿德里安之外什么都不能匹配......你可以做到这一点。不是这么优雅的方法,但这将解决您的问题。
a(\.+)?d(\.+)?r(\.+)?i(\.+)?a(\.+)?n(.+)?(@mazur\.com)