即使内部嵌入了字符,也可以匹配两个字符之间的任何内容

时间:2013-10-29 02:29:19

标签: java regex

对于令人困惑的标题感到抱歉,但我不确定如何说出来。另外,我对正则表达式缺乏经验。这是我的问题:

我正在提取分隔符之间的文字" {{"和"}}"。我需要这个以匹配多行。使用正则表达式表达很容易:

pageText = pageText.replaceAll(&#34;(?s)\\ {\\ {。*?\\} \\}&#34;,&#34;&#34;)< /强>

但是,我遇到的问题是其他分隔符嵌入在文本块中,如下所示:

&#34;此处的某些文字{{应{{all be}}}已移除}}以及更多文字&#34;

当我在该字符串上使用正则表达式时,我得到:

此处删除了一些文字}}以及其他一些文字

应该导致:

&#34;这里有一些文字,还有一些文字&#34;

所以我需要在{{..}}之间提取所有内容,如果其中包含另一个{{..}}则忽略它。

我在这里和谷歌一直在阅读很多问题,但我找不到解决这个问题的任何问题。如果有一种方法可以使用正则表达式,我特别感兴趣。我似乎可以编写一些执行此任务的函数(虽然我正在努力解决这个问题以及逻辑并不是很简单),但我想在几行内完成它而不会让自己暴露于任何错误来自我写的代码。

感谢任何帮助或指示。谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过这个“\ {{{}}。* \} {2}”?

pageText = pageText.replaceAll( "\\{{2}.*\\}{2}", "" )

我在你的样品上进行了测试,结果很有效。 我也对此进行了测试: “此处有一些文字{{#@#$ %% ^^ {{should {{all be}}}已移除}} $%^&amp; *}}以及更多文字” 它也有效。

试试看,告诉我。