首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个标记之间获取数据

在两个标记之间获取数据
EN

Stack Overflow用户
提问于 2017-01-10 06:46:11
回答 1查看 30关注 0票数 0

我有以下字符串

代码语言:javascript
复制
   String s =  "{s}lorem ipsum{/s}
    explanation for lorem ipsum
    {s}dolar sit amet{/s}
    explanation for dolar sit amet";

我想用两种方式来分析它。我想获取{s}{/s}标签中的文本和{s}{/s}不包含的文本。

我尝试了下面的代码。

代码语言:javascript
复制
 String firstRemovePattern        = "\\{"  + "\\}";
            String replacedWithFirstPattern  = s.replaceAll(firstRemovePattern, "");

但是上面的代码没有获取预期的字符串。我怎么能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-10 06:54:57

您可以使用这个正则表达式分别获得这两个部分:

代码语言:javascript
复制
\{(\w+)\}(.*?){/\1}((?:(?!\{\w+\}).)*)
  • 第二组会在标签之间给你发短信。
  • 第三组会在标签之外给你发短信。

RegEx演示

如果您的输入没有以标记开头,那么使用:

代码语言:javascript
复制
((?:(?!\{\w+\}).)*)\{(\w+)\}(.*?){/\2}((?:(?!\{\w+\}).)*)
  • 第1组+第4组将给出标签外的文本。
  • 第三组会在标签内给你发短信。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41562705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档