我試圖匹配\^c形式的控制字符,其中c是控制字符的任何有效字符。我有這個正則表達式,但它目前不工作:\\[^][@-z]
什麼是控制字符的正則表達式?
我認爲問題在於插入符(^)是正則表達式解析引擎的一部分。
我試圖匹配\^c形式的控制字符,其中c是控制字符的任何有效字符。我有這個正則表達式,但它目前不工作:\\[^][@-z]
什麼是控制字符的正則表達式?
我認爲問題在於插入符(^)是正則表達式解析引擎的一部分。
使用模式\^.
匹配^X
格式的ASCII文本字符串,僅此而已。將\^X
格式的ASCII文本字符串與\\\^.
格式匹配。您可能希望將該點限制爲[[email protected]_\[\]^\\]
,因此\\\^[[email protected]_\[\]^\\]
。對於方括號中的字符類,讀取爲[?\x40-\x5F]
更容易,因此對於文字BACKSLASH,則爲\\\^[?\x40-\x5F]
,後跟文字CIRCUMFLEX,後面是轉換爲有效控制字符之一的內容。
請注意,這是打印出模式或您從文件中讀取的結果。這是你需要傳遞給正則表達式編譯器的東西。如果你將它作爲一個字符串文字,那麼你當然必須加倍每個反斜槓。 `\\\\\\^[?\\x40-\\x5F]"
是的,這看起來很瘋狂,但這是因爲Java不像Groovy和Scala(或Perl和Ruby)那樣直接支持正則表達式。正則表達式的工作總是更容易,沒有額外的bbaacckksslllllaasshheesssssess。 :)
如果您有真正的控制字符而不是間接表示,您可以使用\pC
作爲GC =其他屬性的所有文字代碼點,或者僅用於GC = Control的\p{Cc}
。
查看結果:http://www.regular-expressions.info/characters.html。您應該可以使用\ cA \ cZ來查找控制字符。
這對我沒有意義。那裏有反斜槓嗎?這些真正的控制字符,或一些ASCII序列暗示相同?爲什麼只有\ c @ .. \ cZ只有?還有其他的,你知道的。 – tchrist 2011-02-04 01:51:24
爲什麼你把脫字符放在角色類中呢? – 2011-02-04 01:51:34
我試圖匹配控制字符的文本文本,而不是控制字符本身。 – 2011-02-04 01:58:13