您好我在获取字符串的第三个元素时遇到问题(F604080)
<sourceDocumentId>AX02_APF604_F604080</sourceDocumentId>
我已经尝试过使用这种正则表达式和变体,但是我可以设法获得
F604080。
(?<=\w+_)\w+(?=\<)
(?<=\w+_\w+_)\w+(?=\<)
....
任何帮助将不胜感激。
谢谢。
最佳答案
您不需要回头或向前看,只需使用此简单的正则表达式,
.*_(\w+)
并捕获组1。
Java代码
public static void main(String[] args) {
String s = "<sourceDocumentId>AX02_APF604_F604080</sourceDocumentId>";
Pattern p = Pattern.compile(".*_(\\w+)");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1));
} else {
System.out.println("Didn't match");
}
}
像您想要的那样打印。
F604080