Java ReplaceAll方法工作不正常-将正则表达式替换为正则表达式模式

Java ReplaceAll方法工作不正常-将正则表达式替换为正则表达式模式,java,Java,我看到了很多关于replaceAll问题的问题,但这对我来说并不管用。 我想用模式本身来替换特定模式的出现,这样以后我就能够运行sql并根据regex值找到类似的记录 通过给出: 它应该回来 {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}

我看到了很多关于replaceAll问题的问题,但这对我来说并不管用。 我想用模式本身来替换特定模式的出现,这样以后我就能够运行sql并根据regex值找到类似的记录 通过给出:

它应该回来

{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);
}
但是,在给定的示例中,value replaceall并没有替换任何内容,有人能告诉我我的错误是什么吗?

String.replaceall区分大小写,您的模式与此处的字符串不匹配:

[89AB][0-9a-f]{3}:AB是大写的

a7c3:a是小写

只需将[89AB]替换为[89AB],或使用不区分大小写的模式匹配方法。

String.replaceAll区分大小写,您的模式与此处的字符串不匹配:

[89AB][0-9a-f]{3}:AB是大写的

a7c3:a是小写


只需将[89AB]替换为[89AB],或使用不区分大小写的模式匹配方法。

您的模式与值不匹配您的模式与值不匹配:您的模式与值不匹配您的模式与值不匹配:没有注意到我的正则表达式测试插件已禁用区分大小写;/感谢您指出这一点,它看起来像是在replaceAll中添加了?i-before模式!没有注意到我的正则表达式测试插件已禁用区分大小写;/感谢您指出这一点,它看起来像是在replaceAll中添加了?i-before模式!