Python中的正则表达式有哪些

  介绍

这篇文章给大家介绍Python中的正则表达式有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

什么是正则表达式?

正则表达式(正则表达式)通常被用来检索,替换那些符合某个模式(规则)的文本。

此处的规律即是规则,规律的意思,正则表达式即“描述某种规则的表达式”之意。

Python如何支持正则?

我用的是Python来实现正则,并使用Jupyter笔记本编写代码。

Python通过再保险模块支持正则表达式,再保险模块使Python语言拥有全部的正则表达式功能。

这里要注意两个函数的使用:

re.compile用于编译正则表达式,生成一个正则表达式(模式)对象,

。findall用于在字符串中找到正则表达式所匹配的所有子串,并返回一个列的表,如果没有找到匹配的,则返回空列表。

#,导入再保险模块   import  re

1。邮箱

包含大小写字母,下划线,阿拉伯数字,点号,中划线

表达式:

[a-zA-Z0-9_ -] + @ (a-zA-Z0-9_ -) + (?: \ [a-zA-Z0-9_ -] +)

案例:

pattern =, re.compile (r" [a-zA-Z0-9_ -] + @ (a-zA-Z0-9_ -) + (?: \ [a-zA-Z0-9_ -] +)“)      时间=strs  & # 39;我的私人邮箱是zhuwjwh@outlook.com,公司邮箱是123456 @qq.org,麻烦登记一下吗? & # 39;   时间=result  pattern.findall (str)      print(结果)

[& # 39; zhuwjwh@outlook.com& # 39; & # 39; 123456 @qq.org& # 39;]

2。身份证号

xxxxxx yyyy MM dd 375 0,,,,十八位

<李>

地区:[1 - 9]\ d {5}

<李>

年的前两位:(18 19 | | ([23]\ d)),,,,,,李1800 - 2399

<李>

年的后两位:\ d {2}

<李>

月份:((0(1 - 9))|(10 | | 12)11日)

<李>

天数:(((0 - 2)(1 - 9))| 10 | 20 | 30 | 31),,,,,,,,,闰年不能禁止29 +

<李>

三位顺序码:\ d {3}

<李>

两位顺序码:\ d {2}

<李>

校验码:[0-9Xx]

表达式:

(1 - 9) \ d {5} (18 19 | | ([23] \ d)) \ d {2} ((0 (1 - 9)) | (10 11 | | 12)) (((0 - 2) (1 - 9)) | 10 | 20 | 30 | 31) \ d {3} [0-9Xx]

案例:

pattern =, re.compile (r" (1 - 9) \ d {5} (?: 18 19 | | (?: [23] \ d)) \ d{2}(?(?: 0(1 - 9)) |(?: 10 | | 12) 11日)(吗? (?:[0][1 - 9])| 10 | 20 30 | | 31)\ d {3} [0-9Xx]“)      时间=strs  & # 39;小明的身份证号码是342623198910235163,手机号是13987692110 & # 39;   时间=result  pattern.findall (str)      print(结果)

[& # 39; 342623198910235163 & # 39;]

3。国内手机号码

手机号都为11位,且以1开的头,第二位一般为3,5,6,7,8,9,剩下八位任意数字
例如:13987692110,15610098778

表达式:

1 (3 | 4 | 5 | 6 | 7 8 | | 9) \ d {9}

案例:

pattern =, re.compile (r" 1 [356789] \ d {9}“)      时间=strs  & # 39;小明的手机号是13987692110,你明天打给他& # 39;   时间=result  pattern.findall (str)      print(结果)

[& # 39; 13987692110 & # 39;]

4。国内固定电话

区号3 ~ 4位号码7 ~ 8位

例如:0511 - 1234567,021 - 87654321

表达式:

\ d {3} - \ d {8} | \ d {4} - \ d {7}

案例:

pattern =, re.compile (r" \ d {3} - \ d {8} | \ d {4} - \ d {7}“)      时间=strs  & # 39; 0511 - 1234567是小明家的电话,他的办公室电话是021 - 87654321 & # 39;   时间=result  pattern.findall (str)      print(结果)

[& # 39; 0511 - 1234567 & # 39;, & # 39; 021 - 87654321 & # 39;]

5。域名

包含http: \ \或https: \ \

表达式:

(? (?: http: \ \/) | (?: https: \ \/)) ? (?: [\ w] (?: (\ w \] {0, 61} [\ w]) ? \) + [a-zA-Z] {2,6} (?: \/)

案例:

pattern =, re.compile (r" (? (?: http: \ \/) | (?: https: \ \/)) ? (?: [\ w] (?: (\ w \] {0, 61} [\ w]) ? \) + [a-zA-Z] {2,6} (?: \/)“)      时间=strs  & # 39; Python官网的网址是https://www.python.org/& # 39;   时间=result  pattern.findall (str)      print(结果)

[& # 39; https://www.python.org/& # 39;]

6。IP地址

IP地址的长度为32位(共有2 ^ 32个IP地址),分为4段,每段8位,用十进制数字表示

每段数字范围为0 ~ 255,段与段之间用句点隔开

Python中的正则表达式有哪些