Регулярное выражение для сопоставления относительных URL - PullRequest
2 голосов
/ 10 августа 2010

Ищем регулярное выражение, соответствующее следующим относительным URL:

Все URL-адреса начинаются с / abc / , но мы не знаем, где оно заканчивается, и у него нетРасширение файла в конце1012 * и т. Д.

Любая помощь?

Ответы [ 3 ]

3 голосов
/ 10 августа 2010

Попробуйте это регулярное выражение:

/abc/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*(?:/(?:[A-Za-z0-9-._~!$&'()*+,;=:@]|%[0-9a-fA-F]{2})*)*

Это происходит от ABNF универсального URI .

0 голосов
/ 10 августа 2010

Ответ, который я пишу здесь, для PHP; в тот момент, когда я его пишу, вы не сообщили, на какой язык программирования вы заинтересованы, чтобы получить ответ.

  • Если вы хотите, чтобы регулярное выражение проверяло, начинается ли путь с /abc/

    preg_match('|^/abc/.*$|i', $path);

  • Если вам нужно регулярное выражение, которое возвращает деталь после /abc/

    preg_match('|^/abc/(.*)$|i', $path, $matches);

В обоих случаях можно избежать регулярных выражений; Вы можете использовать строковые функции.

0 голосов
/ 10 августа 2010
/^\/abc\//

Однако я думаю, что вы что-то упустили в вопросе ...

...