正则表达式是程序员必知必会的语法
迟早都得遇到,迟早都得学

正则表达式

  • 符合一定规则的表达式
  • 用于操作字符串的规则

匹配任意一个字符

  • 语法:.
    • 会匹配任意一个字符,回车除外
    • 如果需要匹配.则在前面添加\转义

匹配字母和数字

  • 语法:\w
    • 匹配一个数字或一个字母外加下划线
  • 语法:\W
    • 匹配除数字/字母/下划线外的其他一个字符

匹配数字

  • 语法:\d
    • 匹配一个数字
  • 语法:\D
    • 匹配除数字外的一个字符

匹配空白字符

  • 语法:\s
    • 匹配一个空格/制表符(tab)/回车
  • 语法:\S
    • 匹配除空格/制表符(tab)/回车外的一个字符

匹配字符集合

  • 语法:[字符集]
    • 匹配所有在[]内的字符
    • 例:[abc] 匹配a/b/c,不是匹配abc连起来
  • 语法:[字符1-字符2]
    • 字符1字符2范围内的字符
    • 例:
      • [a-z]匹配所有单个小写字母
      • [1-9]匹配所有单个数字
    • 如果需要匹配中文字符,需要用中文字符的Unicode编码
      • 例:[\u4e00-\u9fa5]匹配该范围内的中文
      • 中文与Unicode相互转换的工具网上很多,可以用谷歌去百度一下

出现一次或多次

  • 语法:字符1+
    • 字符1可以出现一次或多次,字符1可以是一个字符集合
    • 例:ha+ 匹配ha/haa/haaa/haaaa......

出现零次或多次

  • 语法:字符1*
    • 字符1可以出现零次或多次,字符1可以是一个字符集合
    • 例:ha* 匹配h/ha/haa/haaa/haaaa......

出现零次或一次

  • 语法:字符1?
    • 字符1可以出现零次或一次,字符1可以是一个字符集合
    • 例:ha? 匹配h/ha

指定出现次数

  • 语法:字符1{次数范围}
    • 字符1可以出现指定次数范围,字符1可以是一个字符集合
    • 例:
      • ha{1,4}匹配ha/haa/haaa/haaaa,会匹配haaaaaaaa...的前面haaaa
      • ha{2}匹配haa
      • ha{1,4}\b不会匹配haaaaaaa....,\b表示边界,也就是需要匹配一个边界

分组匹配

  • 语法:(匹配规则)
    • 对匹配到的字符串进行分组
    • 例: 有文本:我会java,不会Python
      • (.+)java,(.+)python 则可通过$1获得我会,$2获得不会