模式匹配删除wiki标记



我正试图从Jira中使用wiki标记的字段中获取用户的电子邮件地址。字段内容如下:

*User Email:* [useraddress@gmail.com|mailto:useraddress@gmail.com] *Tech Email:* [techaddress@gmail.com|mailto:techaddress@gmail.com]

我需要创建一个正则表达式,它将匹配"用户"或"技术"电子邮件的电子邮件,而不是同时匹配两者。我无法创建一个专门匹配它的正则表达式。我使用的工具的底层实现基于Java的Pattern类,并使用Matcher.find((查找匹配项。

尝试此表达式仅匹配用户电子邮件:

(?:UsersEmail:*s[)([w-@.]+)

在这里你可以看到它是如何工作的:https://regexr.com/51f8s

Java示例:

List<String> items = Arrays.asList(
"*User Email:* [useraddress@gmail.com|mailto:useraddress@gmail.com]",
"*Tech Email:* [techaddress@gmail.com|mailto:techaddress@gmail.com]"
);
Pattern pattern = Pattern.compile("(?:User\sEmail:\*\s\[)([\w\-@.]+)");
for (String item : items) {
Matcher matcher = pattern.matcher(item);
if (matcher.find()) {
System.out.println("email: " + matcher.group(1));
}
}

输出:

email: useraddress@gmail.com

最新更新