作者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)