正则表达式

正则表达式

1、字符组

  • [] :允许匹配一组可能出现的字符
  • 示例:
    • [Pp]ython => 匹配大小写的python

2、区间

  • -:匹配符合范围的字符,大小写敏感
  • 示例:
    • [0-9] => 匹配0-9之间的所有数字
    • [a-z] => 匹配a-z之间的所有字母
    • [a-zA-Z] => 大小写全部匹配

3、转义字符

  • \:用于匹配一些特殊字符

4、非集(取反)

  • ^:匹配不在集合中的字符
  • 示例:
    • [^0-9] => 匹配0-9以外的字符,不包括0-9

5、快捷方式

符号 作用
\d 匹配所有数字
\w 匹配所有字符,包含数字、大小写字符
\s 匹配空白字符、含空格、tab、换行等
\b 匹配单词边界。示例:\bmaster\b => 匹配所有边界的master单词

6、开始和结束

  • ^:指定的是一个字符串的开始
  • $:指定的是一个字符串的结束
  • 示例:
    • ^python$=>匹配以p开头以n结尾的字符串

7、任意字符

  • .:匹配单个字符,只能出现在[]
    注:不能匹配换行符(\n)

8、可选字符

  • ?:指定一个字符、字符组或其他基本单元可选,匹配1次或0次
  • 示例:
    • bu?nd=>匹配bundbnd,可选的

9、匹配多个数据

  • {N}:匹配在字符组后加上,表示它之前的字符组出现N次
  • 示例:
    • \d{9}=>匹配任意的9个数字

10、重复区间

  • {M,N}:M是上界,N是下界
  • 示例:
    • \d{8,10}:匹配8~10个任意数字

注意⚠️:{}后加?,即当匹配到上界时就不再匹配,不加?则为贪婪模式,尽可能多的匹配字符

  • {M,}:匹配M个或无数任意多个

11、速写

+ 匹配1到无数个,即{1,}
* 匹配0到无数个,即{0,}
  • 示例:
    • \d+
    • \d*
    • ^f.+=>匹配f开头的数据

12、或者条件

  • |:匹配多个条件中的1个条件
  • 示例:
    • (.jpg|.png) => 匹配jpg格式或者png格式的数据

13、非捕获分组

  • (?:表达式):不捕获数据,也能使用分组
  • 示例:
    • \b(?:\w|\w{4})\b => 匹配两个或个四个字母组成的单词

案例

(1)匹配所有手机号码

  1. 第一位须以1开头
  2. 第二位可以是[3,4,5,7,8]中的任意一个数字
  3. 后9位可以是[0-9]中任意一个数字
  • 示例:^1[34578]\d{9}
    • [34578] => 匹配[]中可能出现的数字
    • \d{9} => 匹配9次

(2)匹配网站地址

  • http.*/$
    • . => 匹配单个字符
    • * => 匹配0到多个任意字符
    • /$ => 匹配以/为结尾

(3)分组

  • ():将表达式分组
  • 示例:
    • (\d{4})-(\d{7}) => 分别匹配两组数据

(4)匹配学号

  • 示例:年份-班级代码-在班中排序
表达式 解释说明
(\d{4})[\-\s]?(\d{4})[\-\s]?(\d{2}) (匹配四次)匹配0-1个空格或-(匹配四次)匹配0-1个空格或-(匹配两次)

你可能感兴趣的:(提取数据,正则表达式)