• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

regexp

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет!
Нужна помощь. Есть текст
HTML:
<br/>
<br/>
<@f> ertert DHDocNumber</@f>
</p>
<@f> 1234</@f><p>какой-то текст</p>

<ls> ertert <@f>erty</@f> DHDocNumber</ls>
В нем надо найти все теги <ls> и <@f> за один проход

Моих мозгов хватило на такую конструкцию :(
JavaScript:
(<@[fF]>.*<\/@[fF]>)|(<[lL][sS]>.*<\/[lL][sS]>)

Результат - 3 совпадения. Мне же надо получить сначала все теги <@f>, а потом все <ls>
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Всем привет!
Нужна помощь. Есть текст
HTML:
<br/>
<br/>
<@f> ertert DHDocNumber</@f>
</p>
<@f> 1234</@f><p>какой-то текст</p>

<ls> ertert <@f>erty</@f> DHDocNumber</ls>
В нем надо найти все теги <ls> и <@f> за один проход

Моих мозгов хватило на такую конструкцию :(
JavaScript:
(<@[fF]>.*<\/@[fF]>)|(<[lL][sS]>.*<\/[lL][sS]>)

Результат - 3 совпадения. Мне же надо получить сначала все теги <@f>, а потом все <ls>
варианты вложенности - только @if в ls ?
и зачем варианты с регистрами - вродиж есть у регулярок ключ нечувствительности
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вообще вложенности быть не должно, но глупость непобедима :)
Потому нужна любая вложенность. Но я наверное буду делать через рекурсию
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Идея в следующем. Нужно регулярное выражение, которое возвращает последнее вхождение <ls> или <@f> которое не содержит ни один из упомянутых тегов
В общем осилил. Получилась вот такая конструкция:
JavaScript:
(<@f>(?!.*<ls>)(?!.*<@f>)(.*?)<\/@f>)|(<ls>(?!.*<ls>)(?!.*<@f>)(.*?)<\/ls>)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!