NSRegularExpression删除其余代码

时间:2013-05-10 15:08:15

标签: regex nsregularexpression

我希望在某些部分之后从下面的html中删除所有字符串。

<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:@""];

1 个答案:

答案 0 :(得分:1)

在我看来,正则表达式不是你想要实现的目标的首选武器。只需使用NSString <div class="notation_notes">方法搜索rangeOfString字符串即可。然后使用substringWithRange提取要获取的字符串部分。它更简单,顺便说也表现得更好。

您的正则表达式无法正常工作的原因可能是因为您在编译模式时没有使用NSRegularExpressionDotMatchesLineSeparators作为正则表达式选项。 (.*)中的点与没有它的新行不匹配。