Сопоставьте два URL с регулярными выражениями - PullRequest
1 голос
/ 02 сентября 2011

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

http://investor.somehost.com/*

здесь * означает что-либо после этого, или вы можете сказать, что это подстановочный знак ...

String href = url.getURL();

здесь href содержит все URL.

предположим, что firstentry содержит вышеупомянутый url (http://investor.somehost.com/*)

Так, как я могу сравнить href с firstentry, чтобы, если href начинается с этого URL, то делал это ...

Ответы [ 3 ]

6 голосов
/ 02 сентября 2011

Если вы просто хотите определить, начинается ли строка с определенного префикса, используйте startsWith(String prefix).

Пример:

String href = "http://google.com/mail";
if(href.startsWith("http://google.com")) {
    //... Do stuff
}   
1 голос
/ 02 сентября 2011
"^http://investor\\.somehost\\.com/"

будет соответствовать любой строке, начинающейся с http://investor.somehost.com/.Если вам нужны только действительные URL-адреса, вы можете использовать

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?"

Если вы хотите разрешить запросы,

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?(\?([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?"

Если вам также нужны фрагменты,

"^http://investor\\.somehost\\.com/(([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])+(/([-._~:@!$&'()*+,;=a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)*)?(\?([-._~:@!$&'()*+,;=/?a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?(#([-._~:@!$&'()*+,;=/?a-zA-Z0-9]|%[0-9a-fA-F][0-9a-fA-F])*)?"

Завершите любой из них $, если вы не хотите разрешать конечные (не URL) части строки.

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

У меня есть регулярное выражение для в этом посте , которое предоставляет регулярное выражение для извлечения доменной части URL-адреса, где в строке он может находиться. Это для javascript, поэтому удалите ведущий '/' amd trailing '/ ig'. Используйте его, чтобы извлечь домены и сравнить их с простой проверкой на равенство.

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