Pattern p2 = Pattern.compile(".*");
Matcher m2 = p2.matcher("true");
System.out.println(m2.matches() + " [" + m2.group() + "]");
當我使用上面的代碼時,它是可以的。但我不明白當我使用這個regexpr [.]*
時發生了什麼。它打印false
。在正則表達式模式下的點行爲
如何將點作爲特定符號?或者如何使用任何字符創建一類符號而沒有\ n和\ r?
Pattern p2 = Pattern.compile(".*");
Matcher m2 = p2.matcher("true");
System.out.println(m2.matches() + " [" + m2.group() + "]");
當我使用上面的代碼時,它是可以的。但我不明白當我使用這個regexpr [.]*
時發生了什麼。它打印false
。在正則表達式模式下的點行爲
如何將點作爲特定符號?或者如何使用任何字符創建一類符號而沒有\ n和\ r?
但我不明白當我使用這個regexpr [。] *時發生了什麼。它說我是假的。
因爲在character class中,點將失去其特殊含義並匹配一個普通的舊點(.
字符)。
在字符類之外,點是一個元字符,可以匹配任何字符,不包括換行符(除非使用Pattern.DOTALL
修飾符,當然)。
或者如何使用任何沒有\ n和\ r的字符創建一類符號。
使用否定的字符類:
Pattern p2 = Pattern.compile("[^\\r\n]*");
[^\r\n]
意味着「匹配任何這不一個\r
或\n
.*
指任何字符0次或多次 [.]*
意味着點字符0次或多次
的點.
是predefined character class。它匹配任何字符(可能或可能不匹配行結束符)。如果要定義包含值range的字符類,則可以使用[]
。
插入符號在'[^ \\ r \ n]'中進行操作後的第一個反斜槓是什麼? – Geek