手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

基础正则表达式

[日期:2014-09-07] 来源:Linux社区  作者:yonggang7 [字体: ]

1. 正则表达式

正则表达式是处理字符串的方法,以行为单位进行处理。

2. 基础正则表达式字符

使用下面的特殊字符

^string  以string开头的
        grep '^w' test test文件中以w开头的行
string$  以string结尾的
          grep 'day$' test 以day结尾的行
.      匹配任意字符
        grep -n 'go.d' test  找到 good goad 等
\      转义字符, 将特殊字符进行转义
        grep t\'his test
*    重复0次或多次
        grep 'go*d' test 找到 good
[list]  找出选取的字符
[n1-n2] 找出选取的字符范围 grep '[0-9]' filename  找到包含数字的
        [a-z] 包含所有小写字母
[^list] 不包括选取的字符
\{n,m\} 匹配n到m次前一个字符
        \{n\}出现n词, \{n,\}出现n次以上

3. 语系对正则表达式的影响

不同语系的编码数据并不相同。
例如英文大小写编码:
LANG=C时, 0  1  2  3 ... A B C ... Z  a  b  c ... z
LANG=zh_CN时, 0  1  2  3  .... a  A  b  B c  C ... z  Z
所有当我们取 [A-Z] 时,
LANG=C 把大写A-Z取出来
而LANG=zh_CN.gb2312 会把b-z也取出来。
为了避免这个问题, 使用正则表达式时,使用的是兼容于 POSIX 的标准。

[:digit:] Only the digits 0 to 9 
            匹配数字
[:alnum:] Any alphanumeric character 0 to 9 OR A to Z or a to z. 
            字母和数字
[:alpha:] Any alpha character A to Z or a to z.
            字母A-Z, a-z
[:blank:] Space and TAB characters only. 
            匹配空格和 tag
[:xdigit:] Hexadecimal notation 0-9, A-F, a-f.
            16进制数字
[:punct:] Punctuation symbols . , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~
            标点符号
[:print:] Any printable character.
            可打印字符
[:space:] Any whitespace characters (space, tab, NL, FF, VT, CR). Many system abbreviate as \s.
            任何产生空白的字符
[:graph:] Exclude whitespace (SPACE, TAB). Many system abbreviate as \W.
            除了空格和tag外的其他按键
[:upper:] Any alpha character A to Z.
            大写
[:lower:] Any alpha character a to z.
            小写
[:cntrl:] Control Characters NL CR LF TAB VT FF NUL SOH STX EXT EOT ENQ ACK SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC IS1 IS2 IS3 IS4 DEL.
            代表键盘上的控制键

通常与[] 一起使用,
例如:

            grep '[[:digit:]]' test  找到数字
            grep '[[:alpha:]]' test  找到字母

Linux正则表达式特性及BRE与ERE的区别 http://www.linuxidc.com/Linux/2014-03/99152.htm

grep使用简明及正则表达式 http://www.linuxidc.com/Linux/2013-08/88534.htm

正则表达式的用法 http://www.linuxidc.com/Linux/2013-03/81897.htm

正则表达式之零宽断言 http://www.linuxidc.com/Linux/2013-03/81897.htm

Linux中正则表达式与文件格式化处理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-09/106296.htm

linux
相关资讯       正则表达式 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款