美文网首页程序员
正则表达式入门

正则表达式入门

作者: itsenlin | 来源:发表于2018-01-14 17:40 被阅读0次

    概念

    • 正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。
    • 元字符是在正则表达式中有特殊含义的字符,也是保留字符,是不参与匹配的。

    支持的语言及工具

    几乎所有的编程语言以及编辑器都支持正则表达式,但是有可能支持的力度、方式不太一样,像perl/java/js等。

    类unix系统下的工具比较多用的也比较频繁,像grep/awk/sed等。

    特点

    • 同一个匹配结果可以通过不同的正则表达式实现
    • 同一个正则表达式有可能匹配多个结果
    • 大小写敏感

    单字符匹配

    • 普通元字符
    元字符 含义 举例 说明
    [] 字符组或者字符集 [0123],表示只会配置中括号中出现的字符
    - 连字符表示范围 [0-9],表示要配置0到9的数字 只在中括号中表示连字符
    ^ 取非 [^0-9] 表示除了0到9的数字都匹配 对整个字符集生效
    . 通配符,匹配任意单个字符 有些情况下不能匹配行起始符
    \ 转义其他元字符 \. 表示.这个字符本身 需要放在其他元字符之前使用,表示后面跟的字符表示一个普通字符。
    • 下面一些与\搭配的字母或者数字,一起可以称为元字符,也可以称为字符简写形式
    元字符 含义 说明
    \a 报警符
    [\b] 退格字符(回退并删除) 需要放在中括号中
    \c x 控制字符
    \d 数字字符 同 [0-9]的功能
    \D 非数字字符 同 [^0-9]
    \o xxx 八进制值
    \w 单词字符 同[a-zA-Z0-9_]
    \W 非单词字符 同[^a-zA-Z0-9_]
    \0 空字符
    \x xx 十六进制值
    \u xxx Unicode值
    \n 换行符
    \r 回车符
    \s 空白字符 同[\f\n\r\t\v]
    \S 非空白字符 同[^\f\n\r\t\v]
    \t 水平制表符 即Tab键
    \v 垂直制表符
    \V 非垂直制表符
    \f 换页符
    \h 水平空白符
    \H 非水平空白符
    • POSIX字符类

    说明:并不是所有的语言或者工具都支持POSIX字符类
    在类unix环境的bash脚本中使用,还是比较一目了然
    使用时必须以[[开头,]]结尾,如[[:alpha:]]

    字符类 含义 说明
    [:alnum:] 任何一个字母或者数字 同[a-zA-Z0-9]
    [:alpha:] 任何一个字母 同[a-zA-Z]
    [:lower:] 任何一个小写字母 同 [a-z]
    [:upper:] 任何一个大写字母 同 [A-Z]
    [:blank:] 空格或者制表符 同[ \t]
    [:space:] 任何一个空白字符,包括空格 同[ \t\f\n\r\v]
    [:cntrl:] ASCII控制字符 ASCII 0到31,再加上127
    [:digit:] 任何一个数字 同[0-9]或者\d
    [:xdigit:] 任何一个十六进制数字 同[a-fA-F0-9]
    [:graph:] 不包含空格的可打印字符 同[:print:]
    [:print:] 可打印字符

    多字符匹配

    将元字符放在需要匹配的字符后面,表示此字符重复匹配多少次

    元字符 含义 说明
    + 匹配一个或者多个
    * 匹配0个或者多个
    ? 匹配0个或者1个
    {m} 精确匹配m个
    {m,n} 至少匹配m个,至多匹配n个 其中m,n可以只配置一个值

    相关文章

      网友评论

        本文标题:正则表达式入门

        本文链接:https://www.haomeiwen.com/subject/caakoxtx.html