我有以下字符串
String s = "{s}lorem ipsum{/s}
explanation for lorem ipsum
{s}dolar sit amet{/s}
explanation for dolar sit amet";我想用两种方式来分析它。我想获取{s}{/s}标签中的文本和{s}{/s}不包含的文本。
我尝试了下面的代码。
String firstRemovePattern = "\\{" + "\\}";
String replacedWithFirstPattern = s.replaceAll(firstRemovePattern, "");但是上面的代码没有获取预期的字符串。我怎么能解决这个问题?
发布于 2017-01-10 06:54:57
您可以使用这个正则表达式分别获得这两个部分:
\{(\w+)\}(.*?){/\1}((?:(?!\{\w+\}).)*)如果您的输入没有以标记开头,那么使用:
((?:(?!\{\w+\}).)*)\{(\w+)\}(.*?){/\2}((?:(?!\{\w+\}).)*)https://stackoverflow.com/questions/41562705
复制相似问题