【发布时间】:2015-07-05 10:31:59
【问题描述】:
我正在尝试在电子邮件中的 @ 符号(如用户名)之前接受 \\ 和 /。
以下是我们正在使用的当前正则表达式:
^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
我只想允许双反斜杠的原因是我希望在我使用这个正则表达式来验证它是否是一个有效的用户名时字符串被转义。
有效和无效用例:
-
hello\\world@email.com有效。 -
hello\world@email.com无效。 -
hello/world@gmil.com有效。 -
hello@email.com有效。
我尝试了以下正则表达式,但它也允许使用单个反斜杠:
^([\w-(\\\\)/\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
【问题讨论】:
-
只在 at 符号之前?
-
@AvinashRaj:问得好。是的,没错!
-
hello\/world@email.com有效吗? -
C# 用另一个 `` 转义反斜杠所以不行。
-
Tarik 检查我的回答 .. 它对我有用 ..