其他分享
首页 > 其他分享> > 正则表达式

正则表达式

作者:互联网

正则表达式的使用

一、元字符(单次匹配)

  1. .匹配除换行以外的任意字符
  2. \w匹配字母或数字或下划线或汉字
  3. \s匹配任意的空白字符
  4. \d匹配数字
  5. \b匹配单词的开始或结束
  6. ^匹配字符的开始(在集合字符里([^])表示非的意思)
  7. $匹配字符串的结束
  8. 详解和实例
    1. ^\d\d\d$匹配三个全部为数字的字符串 例如:123,456,789,多个的使用^d(9)$
    2. \bOlive\b即匹配Olive这个单词

二、反义字符

反义字符多用于查找除某个字符以外其他任意字符均可以的情况

  1. \W匹配任意不是字母,数字,下划线,汉字的字符
  2. \S匹配任意不是空白符的字符
  3. \D匹配任意非数字的字符
  4. \B匹配不是单词开始或结束的位置
  5. [^]匹配除了x以外的任意字符

三、限定字符(多用于重复匹配次数)

  1. *重复零次或更多次
  2. +重复一次或更多次
  3. ?重复一次或零次
  4. {n}重复n次
  5. {n,}重复n次或更多次
  6. {n,m}重复n到m次

四、字符分支

用“|”将不同的条件分割开来

五、字符分组

通过()进行分组,例如ip地址((25[0-5]|2[0-4][0-9]|[0-1]\d\d\.){3}(25[0-5]|2[0-4][0-9]|[0-1]\d\d\.))

  1. 捕获

    1. (exp)匹配exp,并捕获文本到自动命名的组里
    2. (?<name>exp)匹配exp,并捕获文本到名称为name的组里,也可写成(?'name'exp)
    3. (?:exp)匹配exp,不捕获匹配的文本,也不给分组分配组号
  2. 零宽断言

    1. (?=exp)匹配exp前面的位置
    2. (?<=exp)匹配exp后面的位置
    3. (?!exp)匹配后面跟的不是exp的位置
    4. (?<!exp)匹配前面不是exp的位置

    注释:(?#comment)这种类型的分组不对正则表达式处理产生任何影响,用于提供注释让人阅读

六、懒惰匹配和贪婪匹配

贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符

懒惰匹配:有时候需要匹配尽可能少的字符

懒惰匹配限定符(但尽可能少重复)

  1. *?重复任意次
  2. +?重复一次或多次
  3. ??重复零次或一次
  4. {n,m}?重复n到m次
  5. {n,}?重复n次以上

七、常用的正则表达式整理

标签:字符,匹配,正则表达式,重复,exp,任意
来源: https://www.cnblogs.com/lxuegod/p/16513831.html