[^\x20-\x7E]
我看到了用于正则表达式的模式,其中的目标是从字符串中删除非ascii字符。这是什么意思?
发布于 2017-12-27 10:22:46
它意味着匹配任何不是打印字符的字符。
打印字符包括a到z、A到Z、0到9和符号,例如“;$#%等。
^ not
\x20 hex code for space character
- to
\x7e hex code for ~ (tilde) character
所有的ascii印刷字符都介于这两者之间。
此语句匹配非ascii字符以及ascii控件(非打印)字符,如Bell、tab、null和其他字符。
看
man ascii
在Unix系统上查看它匹配哪些字符。
在Perl中,您还可以将以下内容写成
[^ -~]
或
[[:^cntrl:]]
发布于 2017-12-27 11:52:22
它的意思是“任何不在十六进制范围0x20到0x7E中的字符代码,即32到126”。
发布于 2017-12-27 12:27:04
括号内的插入符号(^)。[]的意思是“Not”,\x20-\x7E表示一系列ascii字符,其中\x20(空格)是范围的开头,\x7E(~)是结束。它基本上是任何不是字母、数字或普通标点符号的东西。
https://stackoverflow.com/questions/-100000032
复制相似问题