我想写一个正则表达式,可以删除[cent]周围的括号
String input1 = "this is a [cent] and [cent] string"
String output1 = "this is a cent and cent string"
但是,如果它像这样嵌套:
String input2="this is a [cent[cent] and [cent]cent] string"
String output2="this is a cent[cent and cent]cent string"
我只能在字符串上使用replaceAll,所以如何在下面的代码中创建模式?替换字符串应该是什么?
Pattern rulerPattern1 = Pattern.compile("", Pattern.MULTILINE);
System.out.println(rulerPattern1.matcher(input1).replaceAll(""));
更新:嵌套的括号格式正确,并且只能位于两层深度,如情况2所示。
编辑:
如果这是字符串
"[<centd>[</centd>]purposes[<centd>]</centd>]"
;则OUPTUT应该为<centd>[</centd> purposes <centd>]</centd>
..基本上,如果括号在centd开始和结束之间,则将其保留在该位置,否则将其删除 最佳答案
描述
该正则表达式将基于支架的仅一侧上的空间来替换支架。
正则表达式:(?<=\s)[\[\]](?=\S)|(?<=\S)[\[\]](?=\s)
用空字符串替换
摘要
样品1
输入:this is a [cent[cent] and [cent]cent] string
输出this is a cent[cent and cent]cent string
样品2
输入:this is a [cent[cent] and [cent]cent] string
输出this is a cent[cent and cent]cent string
样品3
输入:[<cent>[</cent>] and [<cent>]Chemotherapy services.</cent>]
输出[<cent>[</cent> and <cent>]Chemotherapy services.</cent>]
为了解决对该表达式的查找问题,需要使用以下表达式:[<centd>[</centd>]
并将其替换为<centd>[</centd>
[<centd>]
或[</centd>]
,并仅删除外部方括号
保留所有其他方括号
正则表达式:\[(<centd>[\[\]]<\/centd>)\]|\[(<\/?centd>)\]
替换为:$1$2
样品4
输入:[<centd>[</centd>]purposes[<centd>]</centd>]
输出<centd>[</centd>pur [T] poses<centd>]</centd>
关于java - 正则表达式,用于在标记内转换括号和嵌套括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17051323/