【问题标题】:Find text between square brackets outside HTML tags在 HTML 标记外的方括号之间查找文本
【发布时间】:2017-02-16 08:49:53
【问题描述】:

我看到了我的问题的所有可能重复项,但它们并没有解决我的问题。 例如,我有这样的文字:

This [is] a [text] in <ignore>square [brackets]</ignore>

我只需要在&lt;ignore&gt;&lt;/ignore&gt; 标签之外的方括号中找到文本。在这种情况下,这些词是istext。 如何做到这一点(最好使用 Java Regex)?

【问题讨论】:

  • 您需要如何处理这些括号内的文本?请提供预期的输出和您尝试过的内容。如果它是标记文本,为什么要选择正则表达式?
  • 如果&lt;ignore&gt;出现在方括号内会怎样?
  • @DavidWallace 这不会发生
  • @WiktorStribiżew 为什么你需要知道我将如何处理这些文本?正如我所写,预期的输出是单词“is”和“text”。我试过这个stackoverflow.com/questions/18621568/…
  • 使用两个正则表达式。第一个将摆脱忽略标签中的所有内容;第二个将挑出方括号。

标签: java regex


【解决方案1】:

首先,删除&lt;ignore&gt;标签中的所有内容:

   str = str.replaceAll("<ignore>((?!</ignore>).)*</ignore>", "");

之后,创建以下模式以查找括号内的所有内容:

   Matcher m = Pattern.compile("\\[([^\\[\\]]*)\\]").matcher(str);
   while (m.find()) {
    str = m.group(1);
    System.out.println(str);
   }

【讨论】:

    猜你喜欢
    • 2013-08-05
    • 2012-03-05
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多