java - 正则表达式从字符串中获取第三个元素

标签 java regex

您好,我在获取字符串的第三个元素 (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

关于java - 正则表达式从字符串中获取第三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709689/

相关文章:

javascript - 在 Javascript 中使用正则表达式返回 URL 参数值

regex - 如何使用正则表达式将所有内容移动到 Notepad++ 中的一行

使用正则表达式进行 JavaScript 验证不起作用

c# - 用 Regex.Replace() 替换字符串

Java Graphics2D AffineTransform 图像旋转

java - 使用 Java.util.zip.Inflater 解压缩字符串

java - 如何在 uml 中显示返回字符串数组的方法?

java - 键盘 View 键码不起作用

java - WicketTester 选择 Radio Choice 并单击 DownloadLink

regex - 使用正则表达式和Powershell从字符串中提取特定数据