2017-02-08 4 views
-1

У меня есть следующий текст. Он находится в одной строке, и я хочу искать его для имен файлов (file1.pdf, file2.pdf и т. Д.).Regex поиск шаблона в пределах одной строки

<i class="attachment-ref">(See attached file: file1.pdf)</i><i class="attachment-ref">(See attached file: file2.pdf)</i>some text<i class="attachment-ref">(See attached file: file3.pdf)</i>some other text 

Regex:

\<i class=\"attachment-ref\"\>\(.*\:\s(.+?)\)\<\/i\> 

Это регулярное выражение хорошо работает, когда теги разбиты на отдельные строки.

Что я должен изменить, чтобы заставить его работать в одной строке?
Этот пример можно найти здесь: https://regex101.com/r/6dJWuC/5

ответ

1

сделать .* нежадным путем добавления ? после его

\<i class=\"attachment-ref\"\>\(.*?\:\s(.+?)\)\<\/i\> 

https://regex101.com/r/PxEtrL/1

+0

Спасибо, он отлично работает! –

+0

@dj_universe Добро пожаловать. Рад, что смог помочь. –

1

Первая группа записи этого регулярного выражения даст вам имя файла: file:\s(\w+\.\w+)

Example

+0

Спасибо. Он работает, но мне нужен тег . –

Смежные вопросы