美文网首页程序员专项
正则表达式笔记

正则表达式笔记

作者: 莫云溪 | 来源:发表于2018-10-21 23:37 被阅读29次

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的字串做替换或者从某个串中取出符合某个条件的字串等。

    正则表达式在线测试:
    http://www.regexpal.com/

    元字符

    常用元字符:

    代码 说明
    . 匹配除换行符以外的任意字符
    \w 匹配字母或数字或下划线或汉字
    \d 匹配数字
    \s 匹配空格
    \b 匹配单词的开始或结束
    ^ 匹配字符串的开始,如果是处理多行,意义变成行开始处
    $ 匹配字符串的结束,如果是处理多行,意义变成行结束处

    限定符

    常用限定符:

    代码 说明
    * *前面的内容重复任意次
    + +前面的内容重复一次或者多次
    ? 重复零次或一次
    {n} 重复n次
    {n, } 重复次数大于等于n
    {n,m} 重复次数大于等于n小于等于m

    字符类

    [auiou] 匹配任何一个英文元音字母
    [.?!] 匹配标点符号(. ? !)

    反义

    代码 说明
    \W 匹配任意不是字母、数字、下划线、汉字的字符
    \S 匹配任意不是空白符的字符
    \D 匹配任意非数字的字符
    \B 匹配不是单词开头或结束的位置
    [^x] 匹配除了x以外的任意字符
    [^abcd] 匹配除了abcd以外的任意字符

    分组

    代码 说明
    (exp) 匹配exp,并捕获文本到自动命名组中
    (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?`name`exp)
    (?:exp) 匹配exp,不捕获匹配的文本,也不给次分组分配组号
    (?=exp) 匹配exp前面的位置
    (?<=exp) 匹配exp后面的位置
    (?!exp) 匹配后面跟的不是exp的位置
    (?<!exp) 匹配前面不是exp的位置
    (?#comment) 注释

    贪婪与懒惰

    通常重复限定符的行为是匹配尽可能多的字符,在限定符后面加?使之成为惰性限定符,例如*?的含义为重复任意次数,但是尽可能少

    博客地址,如果有帮助点个赞支持一下😁

    相关文章

      网友评论

        本文标题:正则表达式笔记

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