【问题标题】:Change email javascript regex to java将电子邮件 javascript 正则表达式更改为 java
【发布时间】:2018-09-12 01:26:25
【问题描述】:

我需要从 gmail api 解析电子邮件标头(从,到)并将其分开,例如:“John Doe”变成名称:“John Doe”和电子邮件:“john.doe@gmail.com”。我已经找到了解决方案,但是它是在 javascript 中的。我需要将其转换为 java 代码。我在将 javascript 正则表达式更改为 java 时遇到问题:

const regex = /(([\w,\"\s]+)\s)?<?([^@<\s]+@[^@\s>]+)>?,/g;

这是我在 java 中的正则表达式:

String regex = "(([\\w,\\"\\s]+)\\s)?<?([^@<\\s]+@[^@\\s>]+)>?";

我尝试删除第一个 '/' 和 ',/g' 字符,并将所有 '\' 替换为 '\\' 字符,但在正则表达式中仍然出错。

这不是Print Hello Question 的重复,因为问题在于匹配正则表达式中的字符而不是打印它们。我已经知道 java 中的 "\"" make "。

【问题讨论】:

  • \\" 将在字符串中有一个反斜杠,然后终止该字符串。为了让正则表达式引擎看到\",您的Java 字符串文字需要是\\\"。也就是说,\" 没用,因为 " 不需要为正则表达式转义; " 就够了。

标签: javascript java regex


【解决方案1】:

您也需要转义",否则它会关闭字符串。 "(([\\w,\\\"\\s]+)\\s)?&lt;?([^@&lt;\\s]+@[^@\\s&gt;]+)&gt;?"

正如 Amadan 所说," 不需要在正则表达式中转义,所以它可以是 "(([\\w,\"\\s]+)\\s)?&lt;?([^@&lt;\\s]+@[^@\\s&gt;]+)&gt;?"

【讨论】:

    猜你喜欢
    • 2012-01-02
    • 2015-12-03
    • 2014-05-11
    • 2011-10-27
    • 2011-01-16
    • 1970-01-01
    相关资源
    最近更新 更多