字符串
<img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/><img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/><img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
包含多个或一个的字符串中
<img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
我尝试使用
<img alt=":.*"\s?/>
但它需要字符串中的所有/>
字符
我只想从<img
到第一个字符/>
的字符串
<img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
答案 0 :(得分:0)
我不是regex的专家,但这将其分为每个img标签。我想这就是你要的?然后,您可以遍历比赛。如果您想使用内部结构(不包括标签的打开和关闭部分),也可以将它们包装在自己的组中。
<img\s(.*?(?=\s?/>))/>
这导致以下匹配:
1: <img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
2: <img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
3: <img alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"/>
每个结果的第1组如下:
1: alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"
2: alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"
3: alt=":)" class="smilies" id="smilie_207" src="https://example.com/smile.gif" title="Smile"
答案 1 :(得分:0)
下面将返回带有标签的3个img元素中的每一个:
<\s*img[^>]*\/>
为了获得img标签之间的所有内容,您可以使用以下代码:
(?<=<\s*img)[^>]*(?=\/>)
为了分别获取每个标记中的每个element属性,可以使用:
(\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?