ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则表达式

2022-07-24 08:31:55  阅读:157  来源: 互联网

标签:字符 匹配 正则表达式 重复 exp 任意


正则表达式的使用

一、元字符(单次匹配)

  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有