1
Я пытаюсь извлечь имена файлов из длинного текста.Regex with capture groups
- Имена файлов находятся в пути
- Путь всегда приставочные с текстом
Page source
- Они могут появляться в любом месте на линии
- текст содержит несколько строк
- Все имена файлов оканчиваются
.html
Учитывая следующий текст:
Page source file:///somedir/subdir/subdir/mysource.html lorem ipsum more text
Lorem Ipsum ...
Lorem Ipsum Page source file:///anotherdir/sub/dir/anothersource.html
Я хочу, чтобы список всех имен файлов:
mysource.html
anothersource.html
Я пытался получить его с помощью следующих регулярных выражений:
// this only gets the last one (because of the greedy .*)
Page source.*\/(.*\.html)
// This gets all occurrences, but the value in my capture group is the
// complete path starting after the first occurrence of/
Page source.*?\/(.*?\.html)
Как я могу сказать регулярное выражение двигатель будет не жадным для внешнего выражения, но все еще достаточно жадным, чтобы перейти к последнему /
перед номером .html
?
Я чувствую себя глупо спрашивать это кто-то с таким гораздо больше репутации, чем у меня, но движок регулярных выражений вы используете? На каком языке вы работаете? –
Первое кажется ОК: https://regex101.com/r/pJ4cH3/1 Можете ли вы более точно описать проблему? – Antwane
Я бы сказал https://regex101.com/r/dH3vI5/1. То есть '(?: Источник страницы). * \/(. *. Html)'. – fedorqui