2009-06-11 58 views

回答

35

它說是這樣的:所有範圍\x20-\x7E(十六進制0x200x7E)不是(^)字符。

根據http://www.asciitable.com/,這些字符從空間到~

+8

即可打印字符 – annakata 2009-06-11 20:05:25

+0

值得注意的是,您也可以使用API​​來執行檢查。例如,在Java中,您可以使用java.lang.Character.isISOControl(字符)和類似的方法,使代碼更具可讀性。 – Stan 2016-11-14 09:56:31

2

它表示「任何非十六進制範圍0x20至0x7E,即32至126的字符代碼」。

2

括號[]中的括號(^)表示「不」,並且\ x20- \ x7E表示ASCII字符的範圍,其中\ x20(空格)是範圍的開始,\ x7E( 〜)結束。它基本上不是一個字母,數字或常見的標點符號。

5

這意味着匹配任何不打印字符的字符。

打印字符包括a到z,A到Z,0到9和符號,如」; $#%等

^ not 
\x20 hex code for space character 
- to 
\x7e hex code for ~ (tilde) character 

所有ASCII打印字符這兩者之間落在

這種說法不符合ASCII字符和ASCII控制(非打印)字符,如鍾,標籤,空和其他人。

man ascii 

在unix系統上查看它匹配哪些字符。

在Perl中,你也可以這樣寫

[^ -~] 

[[:^cntrl:]] 

這最後一個略有不同,因爲它任何非控制字符,包括ASCII擴展匹配(例如帶重音字符)和unicode。

您可能不想僅限於ascii,因爲非美國地區通常使用此小範圍以外的有效打印字符,例如, øüéåç...