2013-05-10 29 views
0

我想一些地區後,請從下方HTML的所有字符串。NSRegularExpression刪除其餘的代碼

<br> 
<br> 
</div> 
<div class="notation_notes"> 
<hr> 
<br> 
●表記について<br> 
<ul> 
    <li>このファイルは W3C 勧告 XHTML1.1 にそった形式で作成されています。</li> 
    <li>[#…]は、入力者による注を表す記號です。</li> 
</ul> 
</div> 
<div id="card" style="display: block; "> 
<hr> 
<br> 
<a href="JavaScript:goLibCard();" id="goAZLibCard">●図書カード</a><script type="text/javascript" src="../../contents.js"></script> 

我想在此標籤後移除所有代碼。

<div class="notation_notes"> 

我的代碼在這裏,但它不會改變任何結果。任何人都可以幫我解決這個問題嗎?

NSArray *regExPatternList = @[@"<div class=\"notation_notes\">(.*)"]; 


NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:regExPattern 
                     options:0 
                      error:nil]; 

html = [regexp stringByReplacingMatchesInString:html 
             options:0 
              range:NSMakeRange(0,html.length) 
            withTemplate:@""]; 
+0

它返回什麼?如果html全是一行,它看起來應該返回標籤+標籤後面的所有內容。 – munch1324 2013-05-10 15:35:10

+0

這個正則表達式不會改變任何結果。 – 2013-05-10 16:28:02

回答

1

在我的拙見中,正則表達式並不是你想要實現的武器的選擇。只需使用NSString rangeOfString方法搜索<div class="notation_notes">字符串即可。然後從substringWithRange中提取出想要獲得的字符串部分。它更簡單,順便也表現得更好。

你的正則表達式不工作的原因可能是你編譯模式時沒有使用NSRegularExpressionDotMatchesLineSeparators作爲正則表達式選項。如果沒有它,(.*)中的點不匹配新行。

+0

謝謝!你是對的! – 2013-05-11 20:33:15