2016-08-16 1 views
0

У меня есть три типа URL-адресов. Я пытаюсь создать регулярное выражение для выбора каждого типа URL. Скажем, три типа URL, являются: -Создать регулярное выражение, чтобы выбрать различные элементы

Первый: - http://www.domain.com/goodday/

Второй: - http://www.domain.com/today-is-gooddady/

Третий принцип: - http://www.domain.com/life-is-good/enjoy-a-happy-life/

Теперь мне нужно другое регулярное выражение для каждого из них , Я использую это: -

http://www.domain.com/(.*?)/ Но он выбирает все из них. Мне нужно три регулярных выражения, чтобы выбрать три типа URL.

+0

Для того, чтобы получить полезный ответ, пожалуйста, попробуйте дать более точную спецификацию вашей проблемы. В чем разница между тремя типами URL-адресов? Ваши примеры оставляют угадывание читателя. Это число косых черт и тире? Длина строки? Число «d» s после строки «хорошо»? – Heinrich

ответ

0

Прежде всего, иметь в виду, что точка внутри шаблона регулярного выражения должны быть экранированы, чтобы соответствовать буквальная точка, или она будет соответствовать любому символу (но новой строке).

Если предположить, что первый URL не имеет дефисов и содержит только один подраздел после базовой части:

^http://www\.domain\.com/[^/-]*/$ 

См Demo 1

Второй могут быть сопоставлены с

^http://www\.domain\.com/[^/-]+(?:-[^/-]+)+/$ 

если что единственное подразделение после базовой части должно иметь не менее 1 дефиса. См Demo 2

И третий, предполагая, что там должно быть 2 подразделы, могут быть сопоставлены с

^http://www\.domain\.com/[^/]+/[^/]+/$ 

См Demo 3

0

Не уверен, если понял вас правильно: первый только: http:\/\/www.domain.com\/[^-]*?\/$ второй только: http:\/\/www.domain.com\/[^\/]*?\/$ 3rd только: http:\/\/www.domain.com\/[^\/]*?\/[^\/]*?\/$

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