首页 > Java > java教程 > Java中如何匹配括号外的逗号?

Java中如何匹配括号外的逗号?

Patricia Arquette
发布: 2024-11-11 21:49:02
原创
316 人浏览过

How to Match Commas Outside Parentheses in Java?

匹配排除括号出现的逗号

考虑以下字符串:

12,44,foo,bar,(23,45,200),6
登录后复制

当前的任务是设计专门针对括号外的逗号的正则表达式。换句话说,在提供的示例中,我们需要一个正则表达式来匹配“23”和“45”后面的两个逗号,但排除其他逗号。

Java 正则表达式解决方案

假设不存在嵌套括号,我们可以使用以下 Java 正则表达式来实现所需的效果结果:

Pattern regex = Pattern.compile(
    ",         # Match a comma\n" +
    "(?!       # only if it's not followed by...\n" +
    " [^(]*    #   any number of characters except opening parens\n" +
    " \)      #   followed by a closing parens\n" +
    ")         # End of lookahead", 
    Pattern.COMMENTS);
登录后复制

正则表达式的解释

此正则表达式使用否定的先行断言来确认任何后续括号(如果遇到)不是右括号。如果满足此条件,则逗号被识别为匹配项。

先行断言的操作如下:

  • (?! 启动否定先行断言。
  • [^(]* 表示正则表达式引擎应该查找除开头以外的任意数量的字符括号。
  • \) 指定右括号应紧跟在前面的字符之后。
  • ) 结束前向断言。

这确保正则表达式仅匹配后面没有紧跟着右括号的逗号。

以上是Java中如何匹配括号外的逗号?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板