Mus*_*afa 6 java pattern-matching
我指的是这里列出的测试工具http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.html
我对该类所做的唯一更改是模式创建如下:
Pattern pattern =
Pattern.compile(console.readLine("%nEnter your regex(Pattern.CANON_EQ set): "),Pattern.CANON_EQ);
Run Code Online (Sandbox Code Playgroud)
正如http://docs.oracle.com/javase/tutorial/essential/regex/pattern.html上的教程建议我将模式或正则表达式a\u030A和字符串匹配为匹配,\u00E5但它以找不到匹配结束.我看到两根琴弦都是一个小盒子'a',上面有一个戒指.
我没有正确理解用例吗?
你所看到的行为与Pattern.CANON_EQ旗帜无关.
从控制台读取的输入与Java字符串文字不同.当用户(可能是你,测试出这个标志)键入\u00E5控制台时,读取的结果字符串console.readLine相当于"\\u00E5",而不是"å".亲身体验:http://ideone.com/lF7D1
至于Pattern.CANON_EQ它的行为与描述的完全相同:
Pattern withCE = Pattern.compile("^a\u030A$",Pattern.CANON_EQ);
Pattern withoutCE = Pattern.compile("^a\u030A$");
String input = "\u00E5";
System.out.println("Matches with canon eq: "
+ withCE.matcher(input).matches()); // true
System.out.println("Matches without canon eq: "
+ withoutCE.matcher(input).matches()); // false
Run Code Online (Sandbox Code Playgroud)