Как заставить регулярное выражение остановиться на первом матче? - PullRequest
0 голосов
/ 22 февраля 2019

String

<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"/>

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Ниже будут возвращаться каждый из 3 элементов img с тегами:

<\s*img[^>]*\/>

Чтобы получить все между тегами img, вы можете использовать следующее:

(?<=<\s*img)[^>]*(?=\/>)

Чтобы затем получить каждый атрибут элемента в каждом теге отдельно, вы можете использовать:

(\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?
0 голосов
/ 22 февраля 2019

Я не эксперт по регулярным выражениям, но это разбивает его на каждый тег 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...