任何想法如何替换:
..((....))..
使用:
..(...)..
请注意,它不是将“(((” )替换为“(” 。表达式必须确定包含要删除的子括号对。直接与父对配对,没有其他内容。
如果有人可以弄清楚如何递归运行,例如“((((...)))” 到“(...)”
答案 0 :(得分:1)
您可以使用此:
([(]*)(?:\([^)]*\))([)]*)
如果第一个组的大小等于第二个组的大小,或者只使用最小的一个,则只需用空字符串替换组。
测试:
(ABC)
((ABC))
(((ABC)))
((ABC)a)
比赛信息:
Match 1
Full match 0-5 `(ABC)`
Group 1. 0-0 ``
Group 2. 5-5 ``
--> Hence, no update required
Match 2
Full match 6-13 `((ABC))`
Group 1. 6-7 `(`
Group 2. 12-13 `)`
--> As Group 1 and Group 2 size is same, replace those values with '' resulting to '(ABC)
Match 3
Full match 14-23 `(((ABC)))`
Group 1. 14-16 `((`
Group 2. 21-23 `))`
--> Same in this case as well
Match 4
Full match 24-30 `((ABC)`
Group 1. 24-25 `(`
Group 2. 30-30 ``
--> As group 1 and group 2 are not of same size, reduce to the min one which is group 2 (size 0) and hence no update required leaving it to '((ABC)A)'