Regex Url Check - PullRequest
       2

Regex Url Check

0 голосов
/ 02 ноября 2011

Я застрял с простой проблемой регулярных выражений.То, что я хочу сделать, это проверить URL-адрес, чтобы увидеть, содержит ли оно слово ajax и соответствует ли оно в URL-адресе.

Например, заданный URL-адрес localhost / ajax / image / get должен совпадать и возвращать localhost / ajax / image / get

Однако localhost / image / get не должен совпадать.

У меня есть базовые знания о регулярных выражениях, но у меня ничего не получалось.

Есть предложения?Я уверен, что это довольно простой случай.

Я использую это для правила перезаписи мода

Правило перезаписи мода - RewriteRule ^. ? \ Bajax \ b. $ ajax.php? Url = $ 1 [PT, L]

Запрошенный URL http://localhost:93/public/ajax/image/

Перенаправляет в файл ajax.php, но значения URL не сохраняются.

У меня есть еще одно общее правило: RewriteRule ^ (. *) $ Index.php? Url = $ 1 [PT, L]

Запрошенный URL http://localhost:93/public/imgage/get/

Когда это перенаправляет на index.php, оно имеет / public / image / get / в значении GET url

Ответы [ 4 ]

1 голос
/ 02 ноября 2011

Я решил проблему, регулярное выражение, которое я искал, ^ (. Аякса. ) $

Я пытался ^ ( ajax ) $, но это не имеет смысла.

Спасибо за помощь

1 голос
/ 02 ноября 2011

Простое регулярное выражение.У вас есть несколько тегов, поэтому я не совсем уверен, какая у вас платформа.Если это Java:

Pattern regex = Pattern.compile("^.*?\\bajax\\b.*$");

Как правило, это должно быть регулярное выражение:

   /^.*?\bajax\b.*$/

Объяснение:

"^" +       // Assert position at the beginning of the string
"." +       // Match any single character that is not a line break character
   "*?" +      // Between zero and unlimited times, as few times as possible, expanding as needed (lazy)
"\\b" +      // Assert position at a word boundary
"ajax" +    // Match the characters “ajax” literally
"\\b" +      // Assert position at a word boundary
"." +       // Match any single character that is not a line break character
   "*" +       // Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
"$"         // Assert position at the end of the string (or before the line break at the end of the string, if any)

Наконец-то япредложил бы это для дальнейшего чтения.

0 голосов
/ 02 ноября 2011

Это должно быть просто:

Pattern.matches(regex, str)

, поэтому

Pattern.matches ("ajax", str)

где str - передаваемая строка URLв.

0 голосов
/ 02 ноября 2011

Как насчет

[a-z/]*ajax[a-z/]*

, он может использовать некоторые уточнения, поэтому дайте мне знать, если это нужно улучшить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...