正则表达式简单习题练习及总结

您所在的位置:网站首页 以字母开头的邮箱地址 正则表达式简单习题练习及总结

正则表达式简单习题练习及总结

2024-07-10 15:34| 来源: 网络整理| 查看: 265

正则表达式简单习题练习

1、长度为8-10的用户密码(以字母开头 包含字母、数字、下划线)

2、验证用户名,长度为6-18位的英文字母组成

3、邮箱验证126,163邮箱:6~18个字符,可使用字母、数字、下划线,需以字母开头

4、匹配手机号码(11位数字) 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147 联通号码段:130、131、132、136、185、186、145 电信号码段:133、153、180、189

5、‘Save your heart for someone who cares’ 请使用正则将文本中的"s"替换成"S",请写Python代码完成匹配替换。

6、‘三生三世,十里桃花九州海上牧云记莫斯科行动’ 请使用正则将标签中的全部内容匹配出来,请写Python代码完成匹配。

import re # 1、长度为8-10的用户密码(以字母开头 包含字母、数字、下划线) while True: code=input('请输入长度为8-10的用户密码') rulecode=re.compile('[a-zA-Z][\w]{7,9}$') if rulecode.match(code): print('符合规则') else: print('请重新输入密码') #!!!!!注意最后的$不要漏掉,否则无法排除密码设置过长 # 2、验证用户名,长度为6-18位的英文字母组成 while True: name=input('请输入6-18位由英文字母组成的用户名') rulename=re.compile('[a-zA-Z]{6,18}$') if rulename.match(name): print('符合规则') else: print('请重新输入用户名') # 3、邮箱验证126,163邮箱:6~18个字符,可使用字母、数字、下划线,需以字母开头 while True: address=input('请输入126或163邮箱') ruleaddress=re.compile('[a-zA-Z][\w]{5,17}@(126|163)\.com$') if ruleaddress.match(address): print('符合规则') else: print('请重新输入邮箱') # 4、匹配手机号码(11位数字) # 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147 # 联通号码段:130、131、132、136、185、186、145 # 电信号码段:133、153、180、189 while True: phone=input('请输入你的手机号码') codephone1=re.compile('139|136|135[\d]{8}$]') codephone2=re.compile('130|131|132[\d]{8}$') codephone3=re.compile('133|153[\d]{8}$') if codephone1.match(phone): print('移动') if codephone2.match(phone): print('联通') if codephone3.match(phone): print('电信') # 5、'Save your heart for someone who cares' 请使用正则将文本中的"s"替换成"S",请写Python代码完成匹配替换。 data='Save your heart for someone who cares' print(re.sub('s','S',data)) # 6、'三生三世,十里桃花九州海上牧云记莫斯科行动' 请使用正则将标签中的全部内容匹配出来,请写Python代码完成匹配。 data2='三生三世,十里桃花九州海上牧云记莫斯科行动' rule2=re.compile(r'(.*)(.*)(.*)') result=rule2.findall(data2) for i in result: for k in i: print(k)

简单知识点总结:

\d 匹配任意单个数字 \D 匹配非数字 \w 匹配任意单个字母数字下划线 \W 匹配\w之外的任意单个字符 \s 匹配单个空格 x \S 匹配非空白,除空格,tab键之类 x \n 匹配换行符 . 匹配任意单个字符【换行符除外】 \num 匹配前面引用的分组 A{3} 精准N次匹配 A{3,} 最少出现n次 \d{3,5}约定出现最少次数和最大次数 \d* 可以出现0次至无限次 \d+ 最少出现一次 \d? 最多出现一次 ^A.* 头匹配 .*A$ 尾部匹配 ^A.*A$ 全字匹配 x|y 匹配左右两边的字符 x/y (注意也可以多组参考电话习题) [xyz] 字符集合允许出现集合内任意单个字符 例如:[a-zA-Z] [^xyz] 不得出现xyz

贪婪模式&非贪婪模式 后面加个?进行转变 在满足条件的情况下尽可能的去匹配多的字符串(默认) 在满足条件的情况下尽可能的去匹配少的字符串 re.I对大小写不敏感 re.search/re.findall/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3