0
我正在努力與正則表達式。我收到了一個文本,其中包含需要刪除的多個標籤,但我找不到這樣做的好方法。使用正則表達式刪除多個標記
這是我的Java代碼:(這是非常糟糕的:P)
public static String DeleteExtras(String notes){
String regexLazy = "(<a id=\".*?\" name=\".*?\" shape=\".*?\"></a>)+?";
String regexGreedy = "(<a id=\".*?\" name=\".*?\" shape=\".*?\"></a>)+";
Pattern pattern = Pattern.compile(regexGreedy);
Matcher matcher = pattern.matcher(notes);
String match = notas;
if (matcher.find()){
match = matcher.group();
Pattern p2 = Pattern.compile(regexLazy);
Matcher m2 = p2.matcher(notes);
if (m2.find()){
notes = notes.replace(match,m2.group());
}
}
}
這是我得到的文本的簡化版本:
<div class="tr_footnote">
<p class="footnote">
<a id="#(1)" name="#(1)" shape="rect"/>
<a id="(1)" name="(1)" shape="rect"/>
<a id="(1)" name="(1)" shape="rect"/>
<a id="(6)" name="(6)" shape="rect"/>
<a id="(8)" name="(8)" shape="rect"/>(1)</p>
</div>
<div class="tr_footnote">
<p class="footnote">
<a id="(2)" name="(2)" shape="rect"/>(2)</p>
</div>
<div class="tr_footnote">
<p class="footnote">
<a id="(7)" name="(7)" shape="rect"/>
<a id="(7)" name="(7)" shape="rect"/>(7)</p>
</div>
<div class="tr_footnote">
<p class="footnote">
<a id="(8)" name="(8)" shape="rect"/>(8)</p>
</div>
我知道我的代碼沒有按」噸工作正常... 到目前爲止它所做的是刪除第一組重複標籤,我把(標籤)的第一個幻影作爲有效的,所以我替換其餘的第一個(一個標籤)(這是示例文本中的第一個div)。問題是它不能與其他重複標籤一起使用。我試過while(matcher.find())而不是if,但是它替換了同一個標籤的所有標籤。我找不到這樣的外觀圖釋到目前爲止... :(
感謝
這是一個解析器的工作... – hwnd
omg什麼時候會這樣結束。不要使用正則表達式來處理html解析。 –