gpt4 book ai didi

Java正则表达式得到不匹配的部分

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:10 24 4
gpt4 key购买 nike

我正在匹配一个正则表达式

abc.*def.*pqr.*xyz

现在字符串 abc123def456pqr789xyz 将匹配该模式。我想用匹配器找到字符串 123、456、789。

最简单的方法是什么?

最佳答案

将正则表达式更改为 abc(.*)def(.*)pqr(.*)xyz 括号将自动绑定(bind)到

请参阅 Pattern class 的文档, 特别是 Groups and Capturing ,了解更多信息。

示例代码:

final String needle = "abc(.*)def(.*)pqr(.*)xyz";
final String hayStack = "abcXdefYpqrZxyz";

// Use $ variables in String.replaceAll()
System.out.println(hayStack.replaceAll(needle, "_$1_$2_$3_"));
// Output: _X_Y_Z_


// Use Matcher groups:
final Matcher matcher = Pattern.compile(needle).matcher(hayStack);
while(matcher.find()){
System.out.println(
"A: " + matcher.group(1) +
", B: " + matcher.group(2) +
", C: " + matcher.group(3)
);
}
// Output: A: X, B: Y, C: Z

关于Java正则表达式得到不匹配的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3751914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com