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

前端之家收集整理的这篇文章主要介绍了Java正则表达式获得无与伦比的部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在匹配表单的正则表达式
  1. 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.

示例代码

  1. final String needle = "abc(.*)def(.*)pqr(.*)xyz";
  2. final String hayStack = "abcXdefYpqrZxyz";
  3.  
  4. // Use $variables in String.replaceAll()
  5. System.out.println(hayStack.replaceAll(needle,"_$1_$2_$3_"));
  6. // Output: _X_Y_Z_
  7.  
  8.  
  9. // Use Matcher groups:
  10. final Matcher matcher = Pattern.compile(needle).matcher(hayStack);
  11. while(matcher.find()){
  12. System.out.println(
  13. "A: " + matcher.group(1) +
  14. ",B: " + matcher.group(2) +
  15. ",C: " + matcher.group(3)
  16. );
  17. }
  18. // Output: A: X,B: Y,C: Z

猜你在找的Java相关文章