我有这个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">
<img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">
<img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">
<img src="/Users/user/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/7D48D94E-2FE5-4F66-AE29-B7E2EB30870B/MyApp.app/image003.png">
</body>
</html>
我在代码中通过按钮单击构建此字符串并将其显示在UIWebView上。我的问题是我想从这个字符串中删除最后一个图像,但我不知道如何。我认为最好的方法是使用正则表达式,但我不知道如何使用它。另外我真的不知道是否可能,因为我不知道最后一个字符串是什么,它可能只是一个字符,或者它可能是一个图像。
有人有任何想法吗?
提前致谢!
答案 0 :(得分:1)
您可以尝试以下方式:
<img.*?>(?=[^<]*</body>)
这将匹配最后一个<img>
标记,后面跟着</body>
标记。正如其他人指出的那样,parsing (x)html with regex is shady充其量只是。在</body>
标记中添加一些空格或其他一些仍然有效/正确的HTML并且正则表达式将失败。
更好的解决方案是遍历DOM并以此方式执行。