Python正则表达式re模块如何高效处理长尾词查询?

2026-04-11 03:542阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1423个文字,预计阅读时间需要6分钟。

Python正则表达式re模块如何高效处理长尾词查询?

正则表达式是一种独立于任何编程语言的科学,主要用于数据的查找与筛选。

Python正则表达式re模块如何高效处理长尾词查询?

正则表达式

该知识点不属于任何一门编程语言 是一个独立的学科 主要用于数据的查找与筛选

# 需求:编写代码校验用户输入的手机号是否合法 ps: 13 15 17 18 19 python代码逻辑实现: # 1.获取用户输入的手机号 phone_num = input('请输入您的手机号码>>>:').strip() # 2.判断用户输入的手机号是否是纯数字 if phone_num.isdigit(): # 3.判断总长度是否是11位 if len(phone_num) == 11: # 4.判断是否以常见的电话号码开头 ps:13 15 17 18 19 if phone_num.startswith('13') or phone_num.startswith('15') or phone_num.startswith('17') or phone_num.startswith('' '18') or phone_num.startswith('18') or phone_num.startswith('19'): print('手机号合法') print(int(phone_num)) else: print('您输入的手机号开头不对') else: print('手机号必须是11位') else: print('手机号必须是纯数字') 正则表达式实现: import re phone_num = input('请输入您的手机号>>>:').strip() if re.match('^[13|15|17|18|19][0-9]{9}',phone_num): print(phone_num) else: print('您的输入不合法') 总结: 正则表达式本质上就是使用一些符号的组合产生一些特殊的含义,然后去掉字符串中筛选出符合条件的数据 正则表达式之字符组 . 匹配换行符以外的任意字符 \w 匹配字母或数字或下划线 \W 匹配非字母或数字或下划线 \d 匹配数字 ^ 匹配字符串的开头 $ 匹配字符串的结尾(^与$的组合能够明确的限制想要查找的具体数据) a管道符b 匹配字符a或字符b (管道符在很多场景下的意思是或) () 给正则表达式分组不影响表达式的匹配<用于后续的正则起别名 分组获取对应数据> [] 匹配字符组中的字符 [^] 匹配除了字符组中字符的所有字符 正则表达式之量词

在正则表达式中所有的量词默认都是贪婪匹配(尽可能多的)
量词不能单独使用 必须跟在表达式的后面 并且只能影响紧挨着的左边那一个

* 重复零次或更多次(默认就是尽可能多) + 重复一次或更多次(默认就是尽可能多) ? 重复零次或一次(默认就是一次) {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 正则表达式练习题 正则 待匹配字符 匹配结果 说明 海. 海燕海娇海东 海燕海娇海东 匹配到所有“海”的字符 ^海. 海燕海娇海东 海燕 从开头匹配到“海.” 海.$ 海燕海娇海东 海东 只从末尾匹配的“海.$” 李.? 李杰和李莲英和李二棍子 李杰 李连 李二 ?表示重复零次或一次,即只匹配“李”后面一个任意字符 李.* 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 *表示重复零次或多次,即匹配到“李”后面0个或者多个任意字符 李.+ 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 +表示重复一次或多次,即只匹配“李”后面1个或多个任意字符 李.{1,2} 李杰和李莲英和李二棍子 李杰和 李莲英 李二棍 {1,2}匹配1到2次任意字符 李 [杰莲英二棍子]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配“李”字后面[杰莲英二棍子]的字符任意次 李[^和]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配一个不是“和”的字符任意次 [\d] 456bdha3 4 5 6 3 表示匹配任意一个数字,匹配到4个结果 [\d]+ 456bdha3 456 3 表示匹配任意个数字,匹配到2个结果 贪婪匹配与非贪婪匹配

待匹配的文本<script>alert(123)</script> 正则表达式:<.*> #贪婪匹配 上述正则匹配出来的内容是:<script>alert(123)</script> 正则表达式:<.*?> #非贪婪匹配 上述正则匹配出来的内容是:<script> </script> '''所有的量词默认都是贪婪匹配 但是如果在量词的后面紧跟一个问号 那么就会变成非贪婪匹配 小技巧:以后我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.*或者.*?并且结束的标志有上述符号左右两边添加的表达式决定''' 取消转义

正则表达式中取消斜杠与字母的特殊含义 就是斜杠前面加斜杠 \\n \n \\\\n \\n 在python中有更加简便的写法 r'\n' r'\\n' 正则表达式实战

编写校验用户手机号的正则 0?(13|14|15|17|18|19)[0-9]{9} 编写校验用户身份证的正则 \d{17}[\d|x]|\d{15} 编写校验用户邮箱的正则 \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 编写校验用户qq号的正则 [1-9]([0-9]{5,11}) """ 常见的正则百度查找即可 """

本文共计1423个文字,预计阅读时间需要6分钟。

Python正则表达式re模块如何高效处理长尾词查询?

正则表达式是一种独立于任何编程语言的科学,主要用于数据的查找与筛选。

Python正则表达式re模块如何高效处理长尾词查询?

正则表达式

该知识点不属于任何一门编程语言 是一个独立的学科 主要用于数据的查找与筛选

# 需求:编写代码校验用户输入的手机号是否合法 ps: 13 15 17 18 19 python代码逻辑实现: # 1.获取用户输入的手机号 phone_num = input('请输入您的手机号码>>>:').strip() # 2.判断用户输入的手机号是否是纯数字 if phone_num.isdigit(): # 3.判断总长度是否是11位 if len(phone_num) == 11: # 4.判断是否以常见的电话号码开头 ps:13 15 17 18 19 if phone_num.startswith('13') or phone_num.startswith('15') or phone_num.startswith('17') or phone_num.startswith('' '18') or phone_num.startswith('18') or phone_num.startswith('19'): print('手机号合法') print(int(phone_num)) else: print('您输入的手机号开头不对') else: print('手机号必须是11位') else: print('手机号必须是纯数字') 正则表达式实现: import re phone_num = input('请输入您的手机号>>>:').strip() if re.match('^[13|15|17|18|19][0-9]{9}',phone_num): print(phone_num) else: print('您的输入不合法') 总结: 正则表达式本质上就是使用一些符号的组合产生一些特殊的含义,然后去掉字符串中筛选出符合条件的数据 正则表达式之字符组 . 匹配换行符以外的任意字符 \w 匹配字母或数字或下划线 \W 匹配非字母或数字或下划线 \d 匹配数字 ^ 匹配字符串的开头 $ 匹配字符串的结尾(^与$的组合能够明确的限制想要查找的具体数据) a管道符b 匹配字符a或字符b (管道符在很多场景下的意思是或) () 给正则表达式分组不影响表达式的匹配<用于后续的正则起别名 分组获取对应数据> [] 匹配字符组中的字符 [^] 匹配除了字符组中字符的所有字符 正则表达式之量词

在正则表达式中所有的量词默认都是贪婪匹配(尽可能多的)
量词不能单独使用 必须跟在表达式的后面 并且只能影响紧挨着的左边那一个

* 重复零次或更多次(默认就是尽可能多) + 重复一次或更多次(默认就是尽可能多) ? 重复零次或一次(默认就是一次) {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 正则表达式练习题 正则 待匹配字符 匹配结果 说明 海. 海燕海娇海东 海燕海娇海东 匹配到所有“海”的字符 ^海. 海燕海娇海东 海燕 从开头匹配到“海.” 海.$ 海燕海娇海东 海东 只从末尾匹配的“海.$” 李.? 李杰和李莲英和李二棍子 李杰 李连 李二 ?表示重复零次或一次,即只匹配“李”后面一个任意字符 李.* 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 *表示重复零次或多次,即匹配到“李”后面0个或者多个任意字符 李.+ 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 +表示重复一次或多次,即只匹配“李”后面1个或多个任意字符 李.{1,2} 李杰和李莲英和李二棍子 李杰和 李莲英 李二棍 {1,2}匹配1到2次任意字符 李 [杰莲英二棍子]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配“李”字后面[杰莲英二棍子]的字符任意次 李[^和]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配一个不是“和”的字符任意次 [\d] 456bdha3 4 5 6 3 表示匹配任意一个数字,匹配到4个结果 [\d]+ 456bdha3 456 3 表示匹配任意个数字,匹配到2个结果 贪婪匹配与非贪婪匹配

待匹配的文本<script>alert(123)</script> 正则表达式:<.*> #贪婪匹配 上述正则匹配出来的内容是:<script>alert(123)</script> 正则表达式:<.*?> #非贪婪匹配 上述正则匹配出来的内容是:<script> </script> '''所有的量词默认都是贪婪匹配 但是如果在量词的后面紧跟一个问号 那么就会变成非贪婪匹配 小技巧:以后我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.*或者.*?并且结束的标志有上述符号左右两边添加的表达式决定''' 取消转义

正则表达式中取消斜杠与字母的特殊含义 就是斜杠前面加斜杠 \\n \n \\\\n \\n 在python中有更加简便的写法 r'\n' r'\\n' 正则表达式实战

编写校验用户手机号的正则 0?(13|14|15|17|18|19)[0-9]{9} 编写校验用户身份证的正则 \d{17}[\d|x]|\d{15} 编写校验用户邮箱的正则 \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 编写校验用户qq号的正则 [1-9]([0-9]{5,11}) """ 常见的正则百度查找即可 """