Mithrand1r:
私はとの問題に関する質問をたくさん見ましたreplaceAll
が、それは私のために動作しませんでした。私は与えられたことで(そう後で私は、SQLを実行して、正規表現値に基づいて似たレコードを見つけることができるようになります)パターン自体で特定のパターンののoccuranceを交換したいと思います:
https://internal-gateway.com/users/4e8a4741-dd89-4cdd-a7c3-3b2f7044e142
それはリターンをshoud
https://internal-gateway.com/users/[0-9a-f] {8} - [0-9A-F] {4} - [1-5] [0-9A-F] {3} - [89AB] [0-9A-F] {3} - [0-9A-F] {12}
私のコード:
private final static String UUID_PATTERN = "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89AB][0-9a-f]{3}-[0-9a-f]{12}";
private final static String SIM_NUMBER_PATTERN = "894803[0-9]{13}";
private final static String MSISDN_SHORT_PATTERN = "[0-9]{9}";
private final static String MSISDN_LONG_PATTERN = "[0-9]{11}";
private Optional<WebApp> checkRegexes(String url, Long id) {
String urlToLookFor = url.replaceAll(UUID_PATTERN,UUID_PATTERN);
urlToLookFor=urlToLookFor.replaceAll(SIM_NUMBER_PATTERN,SIM_NUMBER_PATTERN);
urlToLookFor=urlToLookFor.replaceAll(MSISDN_LONG_PATTERN,MSISDN_LONG_PATTERN);
urlToLookFor=urlToLookFor.replaceAll(MSISDN_SHORT_PATTERN,MSISDN_SHORT_PATTERN);
return waRepository.getWebAppByRegex(urlToLookFor,id);
}
しかし、与えられた例では、値でReplaceAllは、缶、誰もが私に私のミスで何ヒントを与える、何を交換していませんか?
アイルトン:
String.replaceAll()
大文字と小文字が区別され、そして、あなたのパターンは、ここにあなたの文字列と一致していません。
[89AB][0-9a-f]{3}
:「AB」は大文字であります
a7c3
:「」小文字
ただ、交換する[89AB]
と[89ab]
、または大文字と小文字を区別しないパターンマッチング方式を使用します。