我有一个Java正则表达式模式和一个句子,我想完全匹配它,但对于一些句子它错误地失败了。为什么会这样?(为简单起见,我不使用我的复杂正则表达式,而只使用“.*”)
System.out.println(Pattern.matches(".*", "asdf"));
System.out.println(Pattern.matches(".*", "[11:04:34] <@Aimbotter> 1 more thing"));
System.out.println(Pattern.matches(".*", "[11:04:35] <@Aimbotter> Dialogue: 0,0:00:00.00,0:00:00.00,Default,{Orginal LV,0000,0000,0000,,[???]??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????} "));
System.out.println(Pattern.matches(".*", "[11:04:35] <@Aimbotter> Dialogue: 0,0:00:00.00,0:00:00.00,Default,{Orginal LV,0000,0000,0000,,[???]????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????} "));
输出:
true
true
true
false
请注意,第四句话在问号之间包含了10个Unicode控制字符\u0085,这些字符通常无法由普通字体显示出来。实际上,第三句和第四句话包含相同数量的字符!