Соответствие конкретных URL с регулярным выражением - PullRequest
1 голос
/ 26 июля 2011

Я хочу проверить строку, чтобы убедиться, что она начинается с http: // и находится на сайте example.com. У меня есть это:

"^http://\\Bw{3}?\\.example\\.com/*"

Почему не совпадает?

Ответы [ 4 ]

3 голосов
/ 26 июля 2011

Попробуйте это:

^https?://(?:www\.)?example\.com/?.*

Убедитесь, что вы избегаете обратной косой черты, когда используете это как строку в Java:

"^https?://(?:www\\.)?example\\.com/?.*
0 голосов
/ 26 июля 2011
^http:\/\/(?:www\.)?example\.com(?:\/.*)?$
0 голосов
/ 26 июля 2011

Ваш \ B вызывает проблему. Вы ищете символ между двумя символами, за которыми следуют три буквы

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

Вы также ищете 0 или более косых черт в конце вместо косой черты, за которой следуют 0 или более подстановочных знаков.

Попробуйте: ^http://(?:www\\.)?example\\.com(?:/.*)?

0 голосов
/ 26 июля 2011

Регулярное выражение для этого точно, что адрес ...

"http://www.example.com" будет соответствовать этому и только этому.

Если вы ищете совпадение с другими строками example.com, такими как

"http://test.example.com" RegEx это что-то вроде этого

http://\w+.example.com

Может быть, я не понимаю вопроса, но это ответ на ваш вопрос.

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