0

これにはちょっと困った。

これらの値を含む可能性のあるリンクがあるとします。

Balearic|Ibiza|Majorca|Menorca

例1:http://site.com/Menorca

例 2:http://site.com/Ibiza

リンクにこれら4つのいずれかが含まれているかどうかを示すためにRegExが必要です(大文字と小文字も区別されません)

誰かが正しい方向を指し示すことができますか? 特定の言語ではありませんが、私が使用しているソフトウェアは Java ベースです。

どうもありがとうございました。:)

4

4 に答える 4

0

値のリストは有効な正規表現です。http://rubular.com/r/euscuu7Fwjに従って、大文字と小文字を区別しないように「i」オプションを追加するだけです。

于 2013-06-21T15:07:09.560 に答える
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
于 2013-06-21T15:11:22.090 に答える
0

ここで、あなたが尋ねるものと一致する正規表現を見つけることができます:

^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
于 2013-06-21T15:09:45.670 に答える