匹配字符串中括号外的逗号
考虑类似于以下内容的字符串:
12,44,foo,bar,(23,45,200),6
目标是在 Java 中构造一个正则表达式,以仅选择未括在括号内的逗号。在此示例中,所需的匹配项是“12”和“44”后面的逗号。
解决方案
以下 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中文网其他相关文章!