正则表达式笔记

正则表达式的功能

  • 验证字符串的有效性
  • 替换符合正则表达式的特定文本
  • 从字符串中提取符合条件的字符串

正则表达式实例

  • 获取特殊符号内的字符串,测试字符串为 '[FAMILY]'='AA'
    • 包含特殊符号的正则表达式\[.*?\],结果为[FAMILY]
    • 不包含特殊符号的正则表达式(?<=\[).+?(?=\]),结果为FAMILY

正则表达式语法符号

  • 普通字符

    • a-z、A-Z、0-9、空格等
    • 任何非特殊字符的字符
    • 各种字节字符
  • 特殊字符(元字符)

    • 基本元字符

      元字符 描述
      . 句号匹配任意单个字符除了换行符。
      [ ] 字符种类。匹配方括号内的任意字符。
      [^ ] 否定的字符种类。匹配除了方括号里的任意字符
      * 匹配>=0个重复的在*号之前的字符。
      + 匹配>=1个重复的+号前的字符。
      ? 标记?之前的字符为可选. 表示前面的字符0个或1一个
      {n,m} 匹配num个大括号之前的字符或字符集 (n <= num <= m).
      (xyz) 字符集,匹配与 xyz 完全相等的字符串.
      | 或运算符,匹配符号前或后的字符.
      \ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
      ^ 从开始行开始匹配.
      $ 从末端开始匹配.
    • 简写字符集

      简写 描述
      . 除换行符外的所有字符
      \w 匹配所有字母数字,等同于 [a-zA-Z0-9_]
      \W 匹配所有非字母数字,即符号,等同于: [^\w]
      \d 匹配数字: [0-9]
      \D 匹配非数字: [^\d]
      \s 匹配所有空格字符,等同于: [\t\n\f\r\p{Z}]
      \S 匹配所有非空格字符: [^\s]
      \f 匹配一个换页符
      \n 匹配一个换行符
      \r 匹配一个回车符
      \t 匹配一个制表符
      \v 匹配一个垂直制表符
      \p 匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符

引用

常用Regex表达式

  • 从字符串中提取文件名和扩展名 [^\/]+\.\w+$
  • 从字符串中提取文件名 [^\/]+(?=\.[^.]+$)
  • 从字符串中扩展名 \.([^.]+)$
  • 匹配电话号码:^1[3-9]\d{9}$
  • 匹配邮箱地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
  • 匹配身份证号码:^\d{17}[\d|X]|\d{15}$
  • 匹配URL地址:^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$
  • 匹配日期:^\d{4}-\d{1,2}-\d{1,2}$
  • 匹配IP地址:^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d?\d)$
  • 匹配邮政编码:^[1-9]\d{5}$
  • 匹配中文字符:[\u4e00-\u9fa5]
  • 匹配手机号中间四位为星号:^1[3-9]\d{4}\*{4}\d{3}$

===

发布