【问题标题】:Get all text between { and } (source text contains \n)获取 { 和 } 之间的所有文本(源文本包含 \n)
【发布时间】:2013-06-03 10:56:52
【问题描述】:

考虑源文本

{
a1
a2
a3
}
{
b1
b2
b3
}

我需要得到 2 件物品:

a1
a2
a3

b1
b2
b3

使用正则表达式。

我尝试了这样的解决方案:

java regular expression to extract content within square brackets

但没有成功,因为原始文本包含“\n”字符。

【问题讨论】:

  • 使用[^}] 而不是.*?。 IE。 \\{([^}])\\}

标签: java android regex


【解决方案1】:

你也许可以使用这个正则表达式:

\\{\\n([^\\}]+)\\n\\}

测试here

如果你想要完整的代码,s 是包含你的源文本的地方:

Pattern p = Pattern.compile("\\{\\n([^\\}]+)\\n\\}");
Matcher m = p.matcher(s);
while (m.find()){
    System.out.println(m.group());
}

【讨论】:

  • 好!我应该在 Java 中使用 .split() 函数来获得正确的结果吗?
  • @Seraphim 我在答案中添加了代码部分。我对 Java 语言不太熟悉(正则表达式是一种跨越许多不同语言的语言),但我认为这样就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多