这可能是一个转储问题,我想在不区分大小写的模式下找到确切的字符串。
假设我有字符串“Test”,我发现“test”,我应该返回“Test”。
我知道我可以通过简单地转换为小写并进行比较来实现这一点,但我只需正则表达式解决方案。
我试过了
String test = "test";
String patternString = "[\\$#@\\^&]" + test + "(\\s|$)";
System.out.println("Test".matches(patternString));
虽然我期待真实,但它返回false。我真的不知道上面的表达是什么意思,这就是我在这里的原因。
修改
我知道String.equalsIgnoreCase(另一种)方法,但是我说我需要它以正则表达式方式做,因为我使用spring mongoDB环境,所以我可以使用正则表达式将regex直接匹配到文档中。
答案 0 :(得分:2)
要比较两个String忽略大小写,您应该使用String.equalsIgnoreCase(another)
。除非你真的需要,否则不要使用正则表达式。
答案 1 :(得分:1)
您需要使用不区分大小写的修饰符。
String patternString = "(?i)(?:^|[\\$#@\\^&])" + test + "(?:\\s|$)";
如有必要,在角色类\\s
内添加[...]
。