Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java正则表达式(全部替换)但不是引导一个撇号_Java_Regex - Fatal编程技术网

java正则表达式(全部替换)但不是引导一个撇号

java正则表达式(全部替换)但不是引导一个撇号,java,regex,Java,Regex,我需要一个正则表达式,用一个括号替换所有括号,但如果括号前面有撇号,则不需要 例子 a) ))) --> expected ) b) )))))) --> expected ) c) '))) --> expected )) 有人能帮忙吗? 我尝试了replaceAll(“[^']\\)\\)+”,”) 但不幸的是,这不起作用。对于示例数据,您可以匹配)并在组中捕获一个或多个) 然后替换为单个) 根据(谢谢!)的建议,这可以缩短为: 解释 这将使用来匹配)或多次匹配) 当

我需要一个正则表达式,用一个括号替换所有括号,但如果括号前面有撇号,则不需要

例子

a) ))) --> expected )
b) )))))) --> expected )
c) '))) --> expected ))
有人能帮忙吗? 我尝试了
replaceAll(“[^']\\)\\)+”,”)

但不幸的是,这不起作用。

对于示例数据,您可以匹配
并在组中捕获一个或多个

然后替换为单个

根据(谢谢!)的建议,这可以缩短为:

解释

这将使用来匹配
或多次匹配


当匹配时,您可以将其替换为单个

对于示例数据,您可以匹配
并在组中捕获一个或多个

然后替换为单个

根据(谢谢!)的建议,这可以缩短为:

解释

这将使用来匹配
或多次匹配


当匹配时,您可以将其替换为单个(

使用一个正则表达式删除额外的括号:

replaceAll("(?<!')\\)+", ")")
综合起来:

System.out.println("')'))))".replaceAll("(?<!')\\)+", ")").replaceAll("'\\)", ")"));

System.out.println(“)”)。replaceAll((?使用一个正则表达式删除额外的括号:

replaceAll("(?<!')\\)+", ")")
综合起来:

System.out.println("')'))))".replaceAll("(?<!')\\)+", ")").replaceAll("'\\)", ")"));
System.out.println(“)”)。replaceAll((?尝试正则表达式:

(?<!(\'))\)+

replaceAll("(?<!(\\'))\\)+", ")");
(?试试正则表达式:

(?<!(\'))\)+

replaceAll("(?<!(\\'))\\)+", ")");

(?是否会
导致
,或者它不是有效的输入?当有撇号时,规则是什么?删除相邻的括号并保留所有其他括号?或者将所有内容缩减为两个括号?是否会导致
,或者它不是有效的输入?当有撇号时,规则是什么?删除相邻的括号并保留所有其他括号?或者把所有的东西都减少到两个括号?比我刚才删除的那个更优雅。可以缩短为
\)\124;\)+
替换
-无需捕获。@ctwheels我已更新了答案并包含了您的建议!比我刚删除的那个更优雅。可以缩短为
\)\124;\)+
替换
-无需捕获。@ctwheels我已更新了答案并包含了您的建议!可以压缩为一个正则表达式,而不是两个单独的调用。我刚刚删除了与此类似的答案,因为第四只鸟的答案是相同的,但更短,性能更好。@我选择使用两个调用以提高可读性,但第四只鸟的答案的简单性很难匹配。可以压缩为一个正则表达式,而不是两个单独的调用。我刚刚删除了与此类似的答案,因为第四只鸟的答案是相同的,但更短,性能更好。@ctwheels为了可读性,我选择使用两个调用,但第四只鸟的答案的简单性很难匹配。