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

Другие вопросы по тегам