wcq15759797758 发表于 2021-6-26 20:43:00

正则表达式

一.使用search()方法匹配字符串(1)
import re
pattern = 'mr_\w+'                     # 模式字符串
string = 'MR_SHOP mr_shop'            # 要匹配的字符串
match = re.search(pattern,string,re.I)# 搜索字符串,不区分大小写
print(match)                              # 输出匹配结果
string = '项目名称MR_SHOP mr_shop'
match = re.search(pattern,string,re.I)# 搜索字符串,不区分大小写
print(match)                              # 输出匹配结果


一.使用search()方法匹配字符串(2)
import re                        # 导入re模块
# 表达式,(\d?)+表示多个数字可有可无,\s空格可有可无,([\u4e00-\u9fa5]?)+多个汉字可有可无
pattern = '(\d?)+mrsoft\s?([\u4e00-\u9fa5]?)+'
match = re.search(pattern,'01mrsoft')# 匹配字符串,mrsoft前有01数字,匹配成功
print(match)                            # 打印匹配结果
match = re.search(pattern,'mrsoft')# 匹配字符串,mrsoft匹配成功
print(match)                            # 打印匹配结果
match = re.search(pattern,'mrsoft ')# 匹配字符串,mrsoft后面有一个空格,匹配成功
print(match)                            # 打印匹配结果
match = re.search(pattern,'mrsoft 第一')# 匹配字符串,mrsoft后面有空格和汉字,匹配成功
print(match)                            # 打印匹配结果
match = re.search(pattern,'rsoft 第一')# 匹配字符串,rsoft后面有空格和汉字,匹配失败
print(match)                            # 打印匹配结果

一.使用search()方法匹配字符串(3)
import re                        # 导入re模块
pattern = r'\bmr\b'               # 表达式,mr两侧均有边界
match = re.search(pattern,'mrsoft')# 匹配字符串,mr右侧不是边界是soft,匹配失败
print(match)                            # 打印匹配结果
match = re.search(pattern,'mr soft')# 匹配字符串,mr左侧为边界右侧为空格,匹配成功
print(match)                            # 打印匹配结果
match = re.search(pattern,' mrsoft ')# 匹配字符串,mr左侧为空格右侧为soft空格,匹配失败
print(match)                            # 打印匹配结果
match = re.search(pattern,'mr.soft')# 匹配字符串,mr左侧为边界右侧为“.”,匹配成功
print(match)                            # 打印匹配结果

二.使用findall()方法匹配字符串(1)
import re
pattern = 'mr_\w+'                        # 模式字符串
string = 'MR_SHOP mr_shop'                # 要匹配的字符串
match = re.findall(pattern,string,re.I)# 搜索字符串,不区分大小写
print(match)                              # 输出匹配结果
string = '项目名称MR_SHOP mr_shop'
match = re.findall(pattern,string)      # 搜索字符串,区分大小写
print(match)                              # 输出匹配结果


二.使用findall()方法匹配字符串(2)
import re                        # 导入re模块
pattern = 'https://.*/'               # 表达式,“.*”获取www.hao123.com
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果


import re                        # 导入re模块
pattern = 'https://(.*)/'               # 表达式,“.*”获取www.hao123.com
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果


二.使用findall()方法匹配字符串(3)
import re                        # 导入re模块
pattern = 'https://.*(\d+).com/'               # 表达式,“.*”获取www.hao123.com
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果

import re                        # 导入re模块
pattern = 'https://.*?(\d+).com/'               # 表达式,“.*”获取www.hao123.com
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果


import re                        # 导入re模块
pattern = 'https://(.*?)'               # 表达式,“.*?”获取www.hao123.com/
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果
pattern = 'https://(.*)'               # 表达式,“.*”获取www.hao123.com/
match = re.findall(pattern,'https://www.hao123.com/')# 匹配字符串
print(match)                            # 打印匹配结果


三.字符串处理sub() 替换字符串
import re
pattern = r'1\d{9}'                     # 定义要替换的模式字符串
string = '中奖号码为:84978981 联系电话为:13611111111'
result = re.sub(pattern,'1XXXXXXXXXX',string)# 替换字符串
print(result)


import re                        # 导入re模块
string = 'hk400 jhkj6h7k5 jhkjhk1j0k66'   # 需要匹配的字符串
pattern = ''                           # 表达式
match = re.sub(pattern,'',string,flags=re.I)# 匹配字符串,将所有字母替换为空,并区分大小写
print(match)                              # 打印匹配结果


import re                        # 导入re模块
# 需要匹配的字符串
string = 'John,I like you to meet Mr. Wang,Mr. Wang, this is our Sales Manager John. John, this is Mr. Wang.'
pattern = 'Wang'      # 表达式
match = re.subn(pattern,'Li',string)# 匹配字符串,将所有Wang替换为Li,并统计替换次数
print(match)                              # 打印匹配结果
print(match)                           # 打印匹配次数


三.字符串处理split() 分割字符串
import re
pattern = r'[?|&]'                  # 定义分割符
url = 'http://www.mingrisoft.com/login.jsp?username="mr"&pwd="mrsoft"'
result = re.split(pattern,url)   # 分割字符串
print(result)

import re                        # 导入re模块
# 需要匹配的字符串
string = '预定|K7577|CCT|THL|CCT|LYL|14:47|16:51|02:04|Y|'
pattern = '\|'      # 表达式
match = re.split(pattern,string,maxsplit=1)# 匹配字符串,通过第一次出现的|进行分割
print(match)                              # 打印匹配结果

fish_nian 发表于 2021-6-26 21:51:55

{:10_298:}不错

染上灬网络 发表于 2021-6-26 23:54:56

感谢!

超级玛尼哄 发表于 2021-6-27 00:08:17

{:10_254:}   领币感谢

深谙流年 发表于 2021-6-27 01:19:55

厉害

龙舞九天 发表于 2021-6-27 06:26:11

{:5_95:}

hornwong 发表于 2021-6-27 18:20:23

{:5_95:}

懒狗李 发表于 2021-6-27 18:35:44

{:10_254:}

1molHF 发表于 2021-6-28 09:04:45

厉害

Dragon910623 发表于 2021-6-29 14:09:31

牛逼

fumouren 发表于 2021-6-29 14:16:48

感谢

PigsDream 发表于 2022-4-15 20:11:12

+3,感谢

match123_xbd 发表于 2023-4-8 23:27:04

{:7_141:}
页: [1]
查看完整版本: 正则表达式