java正则表达式(全部替换)但不是引导一个撇号
我需要一个正则表达式,用一个括号替换所有括号,但如果括号前面有撇号,则不需要
例子
a) ))) --> expected )
b) )))))) --> expected )
c) '))) --> expected ))
有人能帮忙吗?
我试过replaceAll("[^']\\)\\)+", ")");
但不幸的是,这是行不通的
你可以在下面搜索框中键入要查询的问题!
我需要一个正则表达式,用一个括号替换所有括号,但如果括号前面有撇号,则不需要
例子
a) ))) --> expected )
b) )))))) --> expected )
c) '))) --> expected ))
有人能帮忙吗?
我试过replaceAll("[^']\\)\\)+", ")");
但不幸的是,这是行不通的
# 1 楼答案
对于示例数据,可以匹配
')
并在组中捕获一个或多个)
然后替换为单个
)
^{}
根据@ctwheels的建议(谢谢!)这可以缩短为:
^{}
解释
这将使用一个alternation来匹配
')
或多次)
当匹配时,您可以将其替换为单个
)
# 2 楼答案
使用一个正则表达式删除额外的括号:
另一个是去掉引号
'
:综合起来:
打印
)))
在线试用here
# 3 楼答案
试试正则表达式: