Java 的 java.regex 包不支持命名组,因此本文将介绍第三方库以解决此问题。
Java 7
从 Java 7 开始,Java 原生支持命名组。您可以使用以下结构:
Java 7 之前的替代方案
对于 Java 7 之前的版本,以下第三方库提供命名组支持:
以下是一个使用命名组的示例:
字符串:
"TEST 123"
正则表达式:
"(?<login>\w+) (?<id>\d+)"
访问:
matcher.group(1) == "TEST" matcher.group("login") == "TEST" matcher.name(1) == "login"
替换:
matcher.replaceAll("aaaaa__sssss_____") == "aaaaa_TEST_sssss_123____" matcher.replaceAll("aaaaa_${login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"
以上是如何在 Java 正则表达式中使用命名捕获组?的详细内容。更多信息请关注PHP中文网其他相关文章!