python正则表达式整理

 

正则表达式在处理字符串时很大的作用,爬虫中也经常用到,下面就将一些常用正则表达式做一整理记录,方便以后查看。

 

^     匹配字符串开始,如^d表示以d开头的字符串

.      表示匹配任意字符串

*     表示前面的字符串可以重复多遍

$    表示结尾字符串,比如以3结尾的字符串可以表示为:3$

  表示非贪婪模式,正则表达式默认为贪婪模式,贪婪模式下是反向匹配,即从后向前匹配。非贪婪模式正好相反

+    限制字符出现次数,至少出现一次

{}    限制字符出现次数

  {1}  字符出现一次  {2}出现两次  以此类推

  {1,}字符至少出现一次。其他相同格式,以此类推

       {1,3}字符至少出现一次,做多出现3次  。其他相同格式以此类推

|      表示为  或  的意思

()    表示匹配模式,只匹配()里面,匹配时从最外层()开始

\s    匹配空格      \s+   匹配多个空格

\S   匹配除空格以外的任意字符    \S+ 表示匹配多个非空字符

\w   匹配a-z A-Z 0-9以及下划线中的任意字符

\W  匹配出a-z A-Z 0-9以及下划线以外的任意字符

[]    匹配括号中出现的任意字符

  [1357]  表示可以匹配1,3,5,7中任意一个字符

  [^]  表示取反,非    [^1]表示可以匹配除1以外的任意字符

       [A-Za-z0-9]  表范围,[A-Z]表示可以取A-Z中的任意一个字符   (1[34578][0-9]{9}) 表示字符串以1开头,

  第二个字符为3,4,5,7,8中任意一个字符,[0-9]表示0-9中任意一个数字,{9}表示重复[0-9]9次

[\u4E00-\u9FA5]    匹配汉字。默认匹配一个汉字

           [\u4E00-\u9FA5] +   可匹配多个汉字

\d   匹配数字    \d+ 代表匹配连续的数字      \d{4}代表匹配四位数字

\b   匹配单词边界

 

 

 

正则表达式应用:

正则表达式常用于文本信息提取及用户输入信息校验等地方,下面的列子用于验证用户输入的用户名和qq号是否有效。

 1 import  re
 2 
 3 """
 4 正则表达式
 5 验证输入用户名和QQ号是否有效并给出对应的提示信息
 6 
 7 要求:用户名必须由字母、数字或下划线构成且长度在6~20个字符之间,QQ号是5~12的数字且首位不能为0
 8 
 9 """
10 def qq_verify():
11     username  =input("请输入用户名: ")
12     qq = input("请输入qq号:  ")
13     u1 = re.match(r'^[0-9a-zA-Z\u4E00-\u9FA5]{6,20}$',username)  #\  u4E00-\u9FA5匹配汉字
14     if not u1:
15         print('请输入有效的用户名')
16     q1 = re.match(r'^[1-9]\d{4,11}$',qq)
17     if not q1:
18         print('请输入有效的qq号')
19     if u1 and q1:
20         print('信息有效')
21 if __name__ == '__main__':
22 
23     qq_verify()

 

 

以上为常见正则表达式整理,不全的地方后面会继续追加。

posted @ 2019-07-11 17:19  法卡萨多  阅读(412)  评论(0编辑  收藏  举报