我正在尝试记录使用正则表达式的验证规则的英文解释。我有两个区域无法弄清楚,并且我进行了全面搜索,但找不到有关我在下面识别的表达式片段的任何信息:
[^<>()[\]\\.,;:\s@\""]
到目前为止,我(从上面的代码片段)解释的是,这列出了不允许的字符,即 [^ 和 ]
之间的字符。有一组双反斜杠,这意味着单个反斜杠字符。我无法弄清楚的部分是 \s@\""
我看到\s 表示空格,我假设 @ 是它代表的字符,但我不知道 \""
的意思。我也不确定 s@ 周围的反斜杠是否是某种分隔符,这改变了我上面的解释。
我无法解释的另一部分是:
\"".+\""
\"或\""没有定义(至少我能找到) 我的印象是反斜杠不应该单独存在,也就是说它们要么转义一些特殊字符,要么成对使用来表示反斜杠本身。
如果它有帮助,完整的正则表达式是:
^((([^<>()[\]\\.,;:\s@\""]+(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})))$
感谢您的帮助!
最佳答案
这个正则表达式可能是用双引号字符通过将两个放在一起来转义的语言编写的。我想也许 VB(.Net) 会这样做..?
在这种情况下,\""
将被该语言解析为 \"
,然后在正则表达式中解析为 "
.
关于java - 解释正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233434/