对此有点麻烦。
假设我有一个可以包含这些值的链接:
Balearic|Ibiza|Majorca|Menorca
示例1:http://site.com/Menorca
示例2:http://site.com/Ibiza
我只需要一个RegEx来说明链接是否包含其中任何一个(不区分大小写)
有人指向正确的方向 - 它不是特定的语言,但我使用的软件是基于Java的。
非常感谢 - 我会继续努力! :)
答案 0 :(得分:1)
你可以使用:
// assuming url is your URL variable
if (url.matches("(?i)^http://site\.com/(Balearic|Ibiza|Majorca|Menorca)\b.*$")) {
// match succeeded
}
(?i)
将确保在进行此比较时忽略大小写。
答案 1 :(得分:0)
您的值列表 是有效的正则表达式,只需添加“i”选项,使其不区分大小写,每http://rubular.com/r/euscuu7Fwj
答案 2 :(得分:0)
Here you can find符合您要求的正则表达式:
^http://site\.com/(Balearic|Ibiza|Majorca|Menorca)$
要在Java中使用它,您可能需要执行以下操作:
String url = "http://site.com/Ibiza";
Pattern p = Pattern.compile("^http://site\.com/(Balearic|Ibiza|Majorca|Menorca)$", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(url); // get a matcher object
答案 3 :(得分:0)
通常针对URL的正则表达式不是一个好习惯。
这是一种混合方法。它只会在您的URL路径中查找您的值,从而简化正则表达式并验证URL。不区分大小写。
try {
URI menorca = new URI("http://site.com/Menorca");
System.out.println(menorca.getPath().substring(1));
URI ibiza = new URI("http://site.com/Ibiza");
System.out.println(ibiza.getPath().substring(1));
Pattern pattern = Pattern.compile("Balearic|Ibiza|Majorca|Menorca", Pattern.CASE_INSENSITIVE);
System.out.println(pattern.matcher(menorca.getPath()).find());
System.out.println(pattern.matcher(ibiza.getPath()).find());
}
catch (URISyntaxException use) {
use.printStackTrace();
}
输出:
Menorca
Ibiza
true
true