用Regex替换最后一个图像标记或字符

时间:2014-02-26 20:55:43

标签: html ios objective-c regex

我有这个HTML字符串,如下所示:

<html>
  <head>
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
  </head>
  <body style="font-family: Arial, Helvetica, sans-serif; font-size: 20px; direction: rtl; text-align: rtl; word-wrap: break-word">abcdefghijklmnopqrstuvwxyz
    <img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">&nbsp;
    <img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">&nbsp;
    <img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">&nbsp;
    <img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">&nbsp;
  </body>
</html>

我在代码中通过按钮单击构建此字符串并将其显示在UIWebView上。我的问题是我想从这个字符串中删除最后一个图像,但我不知道如何。我认为最好的方法是使用正则表达式,但我不知道如何使用它。另外我真的不知道是否可能,因为我不知道最后一个字符串是什么,它可能只是一个字符,或者它可能是一个图像。

有人有任何想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方式:

<img.*?>(?=[^<]*</body>)

这将匹配最后一个<img>标记,后面跟着</body>标记。正如其他人指出的那样,parsing (x)html with regex is shady充其量只是。在</body>标记中添加一些空格或其他一些仍然有效/正确的HTML并且正则表达式将失败。

更好的解决方案是遍历DOM并以此方式执行。