0

抱歉标题令人困惑,但我不知道如何措辞。另外,我对正则表达式非常缺乏经验。这是我的问题:

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

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

但是,我遇到了一个问题,即在文本块中嵌入了额外的分隔符,如下所示:

“这里的一些文字{{应该{{全部被}}删除}}还有一些文字”

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

此处删除了一些文字 }} 和更多文字

什么时候应该导致:

“这里有一些文字,还有一些文字”

所以我需要提取 {{ .. }} 之间的所有内容,而忽略其中是否包含另一个 {{ .. }} 。

我在这里和谷歌上阅读了很多问题,但我找不到任何解决这个特定问题的方法。如果有办法用正则表达式做到这一点,我特别感兴趣。看来我可以编写一些执行此任务的函数(尽管我正在为此苦苦挣扎,而且逻辑也不是很简单),但是我希望在几行内完成它而不会使自己暴露于来自我写的代码。

任何帮助或方向表示赞赏。谢谢!

4

1 回答 1

0

你试过这个“\{{2}.*\}{2}”吗?

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

我在您的样品上对此进行了测试,并且有效。我也对此进行了测试:“这里的一些文本 {{ #@#$%%^^ {{ should {{ all be }} removed }} $%^&* }}and some more text”而且效果也很好.

试试看,让我知道。

于 2013-10-29T04:41:20.900 回答