作者arliang (凸鎚大法师)
看板java
标题[问题] 同样的Regex 但是出现不同结果
时间Wed Aug 1 15:01:06 2012
分别两个字串,以「请输入代号」unitcode 中文为搜寻条件
结果跑出不同结果
false
true
请问java高手,为什麽第一个判断的结果,会是false而不是true呢?
是哪里错了吗?
String XX = " ▄ █ ▊ ▍ \n请输入代号";
String X2 = "123请输入代号123";
System.out.println(XX.matches(".*\u8acb\u8f38\u5165\u4ee3\u865f.*"));
System.out.println(X2.matches(".*\u8acb\u8f38\u5165\u4ee3\u865f.*"));
//请输入代号
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.175.188
1F:→ bitlife:有个 \n 挡在那里,预设 . 不吃 \n 08/01 16:00
2F:→ byend:如果要处理 \n,请用\\u000A. EX: (".*\\u000A")是 Ok的 08/01 17:03
3F:→ byend:如果你无法避免资料中出现 \n, 可以使用下列的regexp 08/01 17:05
4F:→ byend:"(.|\\u000A)*\u8acb\u8f38\u5165\u4ee3\u865f(.|\\u000A)*" 08/01 17:06
5F:→ ewn:用(?s).* 让 . 代表全部就行了 08/01 17:10
6F:→ gwokae:传说中的DOTALL flag 08/01 23:01
谢谢 各位大师指导,(.|\\u000A)* 与 (?s).* 都可以执行
※ 编辑: arliang 来自: 59.120.175.188 (08/03 10:26)