java - 解释正则表达式

标签 java regex

我正在尝试记录使用正则表达式的验证规则的英文解释。我有两个区域无法弄清楚,并且我进行了全面搜索,但找不到有关我在下面识别的表达式片段的任何信息:

[^<>()[\]\\.,;:\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/

相关文章:

java - 如何启用/禁用 JTable 上的行选择?

java - 需要帮助-基本的 Java 代码。(斐波那契数列)

java - 掩码 - 带星号的地址(星号) - 如果数组长度为 1?

java - 正则表达式模式与数据和日期匹配

java - 如何计算属于基于 ISO 的周数的天数

java - Gradle FlywayMigrate 给出内存不足异常

java - 带有自定义注释的 Spring AOP 不起作用

正则表达式排除查找工具的单词

sql - 使用 regexp_substr 在 Oracle 中按空格和字符作为分隔符拆分字符串

c# - 如何在 C# 中使用 Regex 匹配给定的模式?