2016-03-24 1 views
-1

Я не знаю таких сведений о регулярном выражении. Я хочу выбрать все ссылки, приведенные ниже.REGEX: Как мне сопоставить/выбрать определенные ссылки через Regex

http://domain.com/file/3843732a6e531/filename.rar 
http://domain.com/file/24af962a61126/filename.zip 
http://domain.com/file/3843732a6e531/filename-part1.rar 

Поэтому я хочу, чтобы выбрать все ссылки, которые начинаются с http://domain.com и заканчиваться .rar или .zip

+0

Это должно быть легко. Вы еще что-нибудь пробовали? –

+0

Нет, как я уже сказал, я не профессионал по регулярному выражению. И извините за мой плохой английский. Ожидание ответов. Спасибо – Yearmaz

ответ

2

Вот это регулярное выражение и некоторые пояснения:

^http:\/\/domain\.com(.*)\.(?:zip|rar)$ 

^ должен сказать, что она нуждается для начала ...

http: является litteraly соответствующий http: (и это чувствительно к регистру)

Мы хотим, чтобы соответствовать 2 // по ссылке в настоящее время, но / является разделителем в Regex, так что вам нужно, чтобы избежать его, поставив \ перед характером вы хотите, чтобы избежать

Вот почему мы имеем \/\/

мы хотим, чтобы соответствовать . доменного имени. Но так как /, . уже означает любой символ в регулярном выражении, поэтому нам тоже нужно его избежать. Вот почему у нас есть \.

Вы хотели, чтобы он проверил, что ссылка завершена с .zip или .rar. Это было сделано с

(?:zip|rar) 
+0

Спасибо вам за эти замечательные сведения. Я пробовал, но он не выбирает. Есть идеи? : https://regex101.com/r/qY0yZ0/1 – Yearmaz

+0

Это потому, что вы сохраняете '^' и '$', пока вы пытаетесь использовать текст, где то, что вы хотите выбрать, находится в середине текста. Удалите их, и это должно сработать! –

+1

Или сделайте поиск многострочным и глобальным - [проверьте его здесь]. (Https://regex101.com/r/jJ8mF0/1) – ClasG

2

Попробуйте следующий Regex:

(http:\/\/domain\.com\/.*?(?:rar|zip)) 

Вот описание на Regex101.

+1

Спасибо за ваши ответы. Я понял из-за ваших ответов :) – Yearmaz

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