2015-04-01 129 views
0

例字符串中删除的所有内容:Before text, <ref>{{BLAHBLAHBLAHBLAH}}</ref> after text, <ref>{{reference2}}</ref> end of paragraph.正则表达式来两个字符串之间但重复

我期待去除<ref></ref>任何提及之间的一切。

,我从上面的例子字符串想要的结果:Before text, after text, end of paragraph.

我已阅读regex remove everything between 2 strings并试图replaceAll("<ref>.*</ref>", ""),我遇到的问题是,在该线程的方法去除太多。如果我在上述文本中使用此方法,结果将为:Before text, end of paragraph。它将删除<ref>标签集之间的文本。

是否有一个简单的正则表达式来达到预期的效果?在我的实际文本中,可能会有很多(超过2个)<ref></ref>标签,其中包含有用的文本。

编辑:添加了我试过的正则表达式。

+0

你能发表你正在使用的正则表达式吗? – 2015-04-01 00:41:48

回答

1

如果你打算关闭答案被引用的问题,你要真是“删除太多”,因为答案使用一个greedy操作,使用*?non-greedy比赛,而不是...

我会提出以下正则表达式,如果你必须使用一个在所有:

str = str.replaceAll("(?s)<ref>.*?</ref>", ""); 

注:内联(?s)模式修饰符允许点跨越换行符序列匹配。

3

我假设你用replaceAll("<ref>.*</ref>", "");来试用它。试着用问号标记,它会让明星不贪心。 replaceAll("<ref>.*?</ref>", "");

相关问题