Regex Получить только docx или значение документа из href
После поиска в stackru я нашел этот шаблон регулярных выражений:
/href=['"]([^'"]+?)['"]/
он получает все значения hrefs
теперь мне нужно ограничить этот шаблон, чтобы получить только значения doc или docx
обратите внимание, что ссылка может заканчиваться дополнением после.docx или.doc
Например, если у меня есть ссылка:
<a href="/site/file1.doc?id=1">link1</a>
Результат должен быть:
/site/file1.doc
Благодарю.
2 ответа
Решение
Попробуй это:
/href=(['"])([^'"]+\.docx?(\?[^'"]*)?)\1/
Для этого необходимо, чтобы после ".doc" или ".docx" находился либо конец href, либо знак вопроса, за которым следовал материал, т. Е. Он не совпадал с "foo.doctor".
Это также гарантирует, что кавычки совпадают на каждом конце посредством обратной ссылки.
Смотрите живую демонстрацию.
/href=['"]([^'"]+?\.docx?)[^'"]['"]/
проверить это здесь: https://regex101.com/r/oS1cD0/2