文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>正则表达式匹配不可见字符

正则表达式匹配不可见字符

时间:2010-06-27  来源:kangle000

在文本中,文字符号分为3种,如表:

普通文字符号     A到Z ,a到z,数字0到9,以及不是元字符的其他符号(比如:#、=)

元字符               12个被保留做特殊用途的符号:[]\^.|?*+(){}

不可见字符         \cx 匹配由 x 指明的控制字符。例如,/cM 匹配一个Control-M或回车符。x 的值必须是A~Z 或 a~z 之一。否则,讲c视为一个原义的"c"字符

                           \f 匹配一个换页符。等价于 \x0c 和 \cL

                          \f 匹配一个换行符。等价于 \x0a 和 \cJ

                           \r 匹配一个回车符。等价于 \x0d 和 \cM

                          \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]

                           \S 匹配任何非空白字符。等价于 [^\f\n\r\t\v]

                          \t 匹配一个制表符。等价于 \x09 和 \cI

                          \v 匹配一个垂直制表符。等价于 \x0b 和 \cK

对于元字符,由于它们在正则表达式中有特殊的用途,所以如果字符串中有和元字符相同的字符,那么要用反斜杠“\”来进行转义。比如下面例中,由于“?”号是元字符,所以要匹配问号时,要加上反斜杠转义。

    对于不可见字符的匹配:有一个err文件,其内容如下

    例如:$ cat -v err
168158.784523 1993024434 3396788324 63375 53 h^A^L.hit.edu.cn. 1 0 1 1

cat利用-v选项显示不可见字符,本例中为^A^L,即ascii码的\001\014,则可以用一下命令匹配。

$cat err|awk '{if( $6 ~ /\f/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1
cat err|awk '{if( $6 ~ /\014/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1
cat err|awk '{if( $6 ~ /\x0c/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载