查找不区分大小写的相同字符串

时间:2015-02-20 13:11:57

标签: java regex

这可能是一个转储问题,我想在不区分大小写的模式下找到确切的字符串。

假设我有字符串“Test”,我发现“test”,我应该返回“Test”。

我知道我可以通过简单地转换为小写并进行比较来实现这一点,但我只需正则表达式解决方案

我试过了

    String test = "test";
    String patternString = "[\\$#@\\^&]" + test + "(\\s|$)";
    System.out.println("Test".matches(patternString));

虽然我期待真实,但它返回false。我真的不知道上面的表达是什么意思,这就是我在这里的原因。

修改

我知道String.equalsIgnoreCase(另一种)方法,但是我说我需要它以正则表达式方式做,因为我使用spring mongoDB环境,所以我可以使用正则表达式将regex直接匹配到文档中。

2 个答案:

答案 0 :(得分:2)

要比较两个String忽略大小写,您应该使用String.equalsIgnoreCase(another)。除非你真的需要,否则不要使用正则表达式。

答案 1 :(得分:1)

您需要使用不区分大小写的修饰符。

String patternString = "(?i)(?:^|[\\$#@\\^&])" + test + "(?:\\s|$)";
如有必要,

在角色类\\s内添加[...]