[英]Regex to grab validate email address in complete XML string or normal string
需要在大 XML/普通字符串中抓取 email 值的字符串文本。
一直在使用正则表达式,截至目前,正则表达式对于普通字符串正则表达式正常工作: ^[\\w;#$%&?'*+/=?`{|}~^-]+(:.\\;[\\w?#$%&?'*+/=:`{|}~^-]+)*@(.,[a-zA-Z0-9-]+\\.)+[a-zA-Z]{1,6}$
文本: paris@france.c
但如果上面的文本包含在 XML 标签中,则无法返回。 <email>paris@france.c</email>
我正在尝试修改此正则表达式的一些更改,以便它适用于这两种情况
您已将^
放在开头,表示“字符串的开头”,将$
放在结尾,表示“字符串的结尾”。 现在,看看你的字符串:
<email>paris@france.c</email>
你认为它以 email 地址开头和结尾吗?
我已经删除了它们并在你的正则表达式中转义了-
。 在这里,您可以使用更新的正则表达式检查以下自动生成的 Java 代码。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "[\\w!#$%&'*+/=?`\\{|\\}~^\\-]+(?:\\\\.[\\w!#$%&'*+/=?`\\{|\\}~^\\-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{1,6}";
final String string = "paris@france.c\n"
+ "<email>paris@france.c</email>";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Output :
Full match: paris@france.c
Full match: paris@france.c
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.