Regex 正则表达式以匹配div中img src的内容
我是这个领域的新手,所以我对Regex 正则表达式以匹配div中img src的内容,regex,Regex,我是这个领域的新手,所以我对regex不太了解。我的问题是这样的 我在里面有一个“div”,它们是“href”属性,最后它们是“img”。我需要一个regex来匹配“img”源内容,如果特定内容的url匹配,我可以通过它获取该内容的数据 <div class="test_list3"> <a href="/photo/tst_t_45288/6782/12/1/">`<img src="http://example.com/1700/tst_t_45288/
regex
不太了解。我的问题是这样的
我在里面有一个“div”
,它们是“href”
属性,最后它们是“img”
。我需要一个regex
来匹配“img”
源内容,如果特定内容的url
匹配,我可以通过它获取该内容的数据
<div class="test_list3">
<a href="/photo/tst_t_45288/6782/12/1/">`<img src="http://example.com/1700/tst_t_45288/m2/tst_t_45288_1.jpg" title="tst-t 1" alt="tst-t 1" /></a><br /><a href="http://example.com/1700/tst_t_45288/tst_t_45288_1.jpg" target="_blank">jpg file</a>
</div>
有什么建议吗?如果使用正则表达式是您最后的选择,您可以选择以下选项:
(?s)<div[^>]*>.*<img.*src=\"([^"]+)\".*<\/div>
(?s)]*>*
解释
- 因为您有多行
标志需要使s
匹配换行符dot
- 然后通过
]*>
零个或多个字符,但不是[^>]*
- 然后,我们应该匹配所有其他内容,直到我们达到打开
tagbyimg
*
- 在此之后,我们应该在
attribute之前遍历可能的属性或空格src
- 然后在
中捕获除src
以外的所有字符:“
src=\”([^”]+)
- 最后,在第一次出现closing
tag之前,将所有内容都转义div
]*>[^]*(((?'Open']*>)[^]*)+(((?'-Open')[^]*)+)*(?(Open)(?!)
获取两个div标记之间的内容
2.使用other reg-exp在步骤1中匹配匹配字符串并获取img标记之间的内容。使用XML解析器。HTML不是一种常规语言,因此不应使用regex。@MillieSmith-另一方面,HTML(在其大多数形式中)XML不是也会让XML解析器窒息吗?另一方面,HTML解析器会非常合适。你打算在什么环境下在HTML上执行正则表达式?我的意思是它是java程序?还是什么?嗯。谢谢你指出@Damien_是一个不信的人。出于某种原因,我认为HTML是一个subset@MillieSmith-否,HTML具有void ele(例如,
和
)不应该有结束标记。非常感谢你们两位。谢谢你们的回答,如果可能的话,请您解释一下这些正则表达式背后的逻辑。@SurajRShrestha答案已更新。