2015-04-01 178 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>", "");

相關問題