在两个标签之间获取数据
Fetch datas between two tags
我得到了以下字符串
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, "");
但是上面的代码没有获取预期的字符串。我怎样才能解决这个问题?
您可以使用此正则表达式分别获取两个部分:
\{(\w+)\}(.*?){/}((?:(?!\{\w+\}).)*)
- 第 2 组会在标签之间为您提供文本。
- 第 3 组会给你标签外的文字。
如果您的输入不是以标签开头,则使用:
((?:(?!\{\w+\}).)*)\{(\w+)\}(.*?){/}((?:(?!\{\w+\}).)*)
- 第 1 组 + 第 4 组将为您提供标签外的文字。
- 第 3 组将为您提供标签内的文字。
我得到了以下字符串
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, "");
但是上面的代码没有获取预期的字符串。我怎样才能解决这个问题?
您可以使用此正则表达式分别获取两个部分:
\{(\w+)\}(.*?){/}((?:(?!\{\w+\}).)*)
- 第 2 组会在标签之间为您提供文本。
- 第 3 组会给你标签外的文字。
如果您的输入不是以标签开头,则使用:
((?:(?!\{\w+\}).)*)\{(\w+)\}(.*?){/}((?:(?!\{\w+\}).)*)
- 第 1 组 + 第 4 组将为您提供标签外的文字。
- 第 3 组将为您提供标签内的文字。