【发布时间】: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