字符串
<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"/>发布于 2019-02-22 22:48:29
下面将返回带有标签的3个img元素:
<\s*img[^>]*\/>为了获取img标记之间的所有内容,您可以使用以下命令:
(?<=<\s*img)[^>]*(?=\/>)为了分别获取每个标记中的每个元素属性,您可以使用:
(\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?发布于 2019-02-22 22:43:19
我不是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"https://stackoverflow.com/questions/54829030
复制相似问题