Я пытаюсь добавить что-то в строку запроса к различным ресурсам, размещенным на средстве выбора файлов, которое обслуживает несколько определенных доменов, некоторые из которых уже содержат строку запроса.Все остальные URL должны быть оставлены нетронутыми.
Например, у нас может быть следующее в уценке:
![image](https://www.filepicker.io/api/file/12x3DD5667dxfjdf/convert?w=600)
У нас также может быть
<img src="https://www.filepicker.io/api/file/someotherfile" />
Или
<a href='https://www.filestack.com/api/file/anothersdf?sdf=3&dfdf=1'>link</a>
Простопытаясь сопоставить один домен на данный момент, у меня есть следующее регулярное выражение, которое не соответствует всем случаям:
Я не хочу сопоставлять какие-либо ссылки на другие домены.
У меня естьимел смешанный успех со следующим:
/(https:\/\/www\.filepicker.io\/api\/file\/[a-zA-Z0-9]+(\/convert)*[^)])$/is
Это будет соответствовать тому, что вы хотите:
/(https?:\/\/www\.(?:filepicker\.io\/|filestack\.com\/)api\/file\/[\w+?&=\/]+)/
https://regex101.com/r/DA8Gok/2/
Но Regex не подходит (сам по себе) для анализа любого типа структурированных данных.Вместо этого создайте лексер / парсер.
Вот несколько примеров, которые я написал:
https://github.com/ArtisticPhoenix/MISC/tree/master/Lexers
http://artisticphoenix.com/2018/11/11/output-converter/