Я пытаюсь построить регулярное выражение, соответствующее выражению, которое:
- начинается со строки (в моем примере:
<div
) - заканчивается другой строкой ( в моем примере:
</div>
) - содержит искомую строку (в моем примере:
searched string
).
Вокруг этой искомой строки может быть что угодно, включая пробелы и символы новой строки.
Синтаксический анализ: <div class="testclass">random example text</div>
<div id="testid">foo bar foo searched string foo bar</div>
Должно совпадать: <div id="testid">foo bar foo searched string foo bar</div>
Первый <div>
не должен совпадать, поскольку он не содержит searched string
Я пробовал что-то вроде: ^(<div)(.|\s)*?(searched string)(.|\s)*?(</div>)$
Но, очевидно, он возвращает все проверенное выражение, поскольку часть (.|\s)*?
соответствует всему, пока не найдет искомую строку.
Я хочу, чтобы RegEx отклонил часть <div class="testclass">random example text</div>
, поскольку она не содержит searched string
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: я использую возвышенное текст 3, чтобы выполнить этот поиск, и, насколько я понимаю, он использует собственный собственный движок регулярных выражений, но я думаю, что logi c может быть похож на другие языки, такие как php.