我有以下字符串
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, "");
但上面的代码没有获取预期的字符串。我怎样才能解决这个问题呢?
答案 0 :(得分:1)
您可以使用此正则表达式分别获取这两个部分:
\{(\w+)\}(.*?){/\1}((?:(?!\{\w+\}).)*)
如果您的输入不是以标记开头,请使用:
((?:(?!\{\w+\}).)*)\{(\w+)\}(.*?){/\2}((?:(?!\{\w+\}).)*)