加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java正则表达式获得无与伦比的部分

发布时间:2020-12-14 06:00:13 所属栏目:Java 来源:网络整理
导读:我正在匹配表单的正则表达式 abc.*def.*pqr.*xyz 现在字符串abc123def456pqr789xyz将匹配模式. 我想找到匹配器的字符串123,456,789. 最简单的方法是什么? 解决方法 将正则表达式更改为abc(.*)def(.*)pqr(.*)xyz,括号将自动绑定到 变量$1到$3 if 你使用Strin
我正在匹配表单的正则表达式
abc.*def.*pqr.*xyz

现在字符串abc123def456pqr789xyz将匹配模式.
我想找到匹配器的字符串123,456,789.

最简单的方法是什么?

解决方法

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

>变量$1到$3 if
你使用String.replaceAll()或
> Matcher.group(n)如果您使用
Matcher.find()

有关详细信息,请参阅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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读