正则题--什么时候才能到200+
Posted wenm1128
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则题--什么时候才能到200+相关的知识,希望对你有一定的参考价值。
1、匹配一行文字中的所有开头的字母内容
>>> re.findall(r"^[a-zA-Z]+","a\nB\n1\nx\n",re.M)
[‘a‘, ‘B‘, ‘x‘]
>>> re.findall(r"^[a-z]+","a\nb\n1\n2\nx\n",re.M)
[‘a‘, ‘b‘, ‘x‘]
>>> re.findall(r"^[a-z]+","axx\nbee2\n1222xxx\n2xxx\nxxx3312xx\n",re.M)
[‘axx‘, ‘bee‘, ‘xxx‘]
2、匹配一行文字中的所有开头的数字内容
>>> re.findall(r"^\d+","a\n3\nB\n1\nx\n",re.M)
[‘3‘, ‘1‘]
>>> re.findall(r"^[0-9]+","a\n3\nB\n1\nx\n",re.M)
[‘3‘, ‘1‘]
3、匹配一行文字中的所有开头的数字内容或数字内容
>>> re.findall(r"^\w+","a\n3\nB\n1\nx\n",re.M)
[‘a‘, ‘3‘, ‘B‘, ‘1‘, ‘x‘]
>>> re.findall(r"^[a-zA-Z0-9]+","a\n3\nB\n1\nx\n",re.M)
[‘a‘, ‘3‘, ‘B‘, ‘1‘, ‘x‘]
4、 只匹配包含字母和数字的行
>>> re.findall(r"[a-zA-Z0-9]+","2b3a\n3\nB\n1\nx\n",re.M)
[‘2b3a‘, ‘3‘, ‘B‘, ‘1‘, ‘x‘]
>>> re.findall(r"\w+","a\n3kl4\naB\n1\nx\n",re.M)
[‘a‘, ‘3kl4‘, ‘aB‘, ‘1‘, ‘x‘]
5、写一个正则表达式,使其能同时识别下面所有的字符串:‘bat‘,
‘bit‘, ‘but‘, ‘hat‘, ‘hit‘, ‘hut‘
>>> re.findall(r"b.t|h.t","bat\nbit\nbut\nhat\nhit\nhut\n",re.M)
[‘bat‘, ‘bit‘, ‘but‘, ‘hat‘, ‘hit‘, ‘hut‘]
6、匹配所有合法的python标识符
在python里,标识符有字母、数字、下划线组成。
>>> re.findall(r"\w|_+","a\n3kl4\n_\naB\n1\n \n x\n",re.M)
[‘a‘, ‘3‘, ‘k‘, ‘l‘, ‘4‘, ‘_‘, ‘a‘, ‘B‘, ‘1‘, ‘x‘]
7、提取每行中完整的年月日和时间字段
>>> re.findall(r"\d+","2019-04-16 11:32")
[‘2019‘, ‘04‘, ‘16‘, ‘11‘, ‘32‘]
>>> re.findall(r"\d+","2019-04-16 11:32\n2019-04-15 12:00\n",re.M)
[‘2019‘, ‘04‘, ‘16‘, ‘11‘, ‘32‘, ‘2019‘, ‘04‘, ‘15‘, ‘12‘, ‘00‘]
>>> re.findall(r"(\d+-\d+)","2019-04-16 11:32:26")
[‘2019-04‘]
>>> re.findall(r"(\d+-\d+-\d+)","2019-04-16 11:32:26")
[‘2019-04-16‘]
>>> re.findall(r"(\d+-\d+-\d+) (\d+):","2019-04-16 11:32:26")
[(‘2019-04-16‘, ‘11‘)]
>>> re.findall(r"(\d+-\d+-\d+) (\d+):(\d+)","2019-04-16 11:32:26")
[(‘2019-04-16‘, ‘11‘, ‘32‘)]
>>> re.findall(r"(\d+-\d+-\d+) (\d+):(\d+):(\d+)","2019-04-16 11:32:26")
[(‘2019-04-16‘, ‘11‘, ‘32‘, ‘26‘)]
>>> re.findall(r"\d+-\d+-\d+ \d+:\d+:\d+","2019-04-16 11:32:26")
[‘2019-04-16 11:32:26‘]
AttributeError: ‘list‘ object has no attribute ‘group‘
>>> re.search(r"\d+-\d+-\d+ \d+:\d+:\d+","2019-04-16 11:32:26").group()
‘2019-04-16 11:32:26‘
8、将每行中的电子邮件地址替换为你自己的电子邮件地址
>>> re.findall(r‘\w+@\w+.com|cn‘,‘mail:465@qq.com‘)
[‘465@qq.com‘]
>>> re.sub(r‘\w+@\w+.com|cn‘,‘XXXX@163.com‘,‘465@qq.com‘)
‘XXXX@163.com‘
9、匹配\home关键字:
>>> re.search(r‘(\\home)‘,‘fewwk\home32‘).group()
‘\\home‘
>>> print(re.search(r‘(\\home)‘,‘fewwk\home32‘).group())
\home
>>> s ="d\home3fe\homed \home "
>>> for i in re.findall(r‘\\home‘,s):
... print(i)
...
\home
\home
\home
进阶练习
1、使用正则提取出字符串中的单词
>>> s= ‘I am a good boy!‘
>>> re.findall(r‘\w+‘,s)
[‘I‘, ‘am‘, ‘a‘, ‘good‘, ‘boy‘]
>>> s= ‘I am a 12 years old boy!‘#字符串中包含数字和字母的情况
>>> re.findall(r‘\b[a-zA-Z]+\b‘,s)
[‘I‘, ‘am‘, ‘a‘, ‘years‘, ‘old‘, ‘boy‘]
2、使用正则表达式匹配合法的邮件地址:
import re re_email = re.compile(r‘^[a-zA-Z\.]+@[a-zA-Z0-9]+\.[a-zA-Z]3$‘) def is_valid_email(addr): if re_email.match(addr): print("True") m = re.match(r‘^([a-zA-Z\.0-9]+)@[a-zA-Z0-9]+\.[a-zA-Z]3$‘,addr) print(m.group(1)) else : print(‘False‘) is_valid_email(‘someone@gmail.com‘)
3、国际域名格式如下:
域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组
合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现。域名中字母不分大
小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
import re
print(re.search(r"^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]2,4$","a32b@qq.com").group())
4、提取字符串中合法的超链接地址
比如:s = ‘<a href="http://www.gloryroad.cn">光荣之路官网</a>‘
要求,给出的正则表达式能兼顾所有链接地址。
>>> re.findall(r‘http://\w+\.‘,s)
[‘http://www.‘]
>>> re.findall(r‘http://\w+\.\w+‘,s)
[‘http://www.gloryroad‘]
>>> re.findall(r‘http://\w+\.\w+\.‘,s)
[‘http://www.gloryroad.‘]
>>> re.findall(r‘http://\w+\.\w+\.\w+‘,s)
[‘http://www.gloryroad.cn‘]
>>> re.findall(r‘http[s]0,1://\w+\.\w+\.\w+‘,s)
[‘http://www.gloryroad.cn‘]
5、统计文件中单词个数
>>> s="I am a good boy!"
>>> re.findall(r"\w+",s)
[‘I‘, ‘am‘, ‘a‘, ‘good‘, ‘boy‘]
>>> len(re.findall(r"\w+",s))
5
6、写一个函数,其中用正则验证密码的强度
密码字符包括:小写字母、大写字母、数字、符号
>>> re.search(r"^(?:([a-z])|([A-Z])|([0-9])|(.))6,|(.)+$","^ 8SA&kkk").group()
‘^ 8SA&kkk‘
7、匹配ip的正则表达式:
>>> re.search(r‘^(([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.)3([1-9]|[1-9]\d|1\d
\d|2[0-4]\d|25[0-5])$‘,"192.168.133.4").group()
‘192.168.133.4‘
以上是关于正则题--什么时候才能到200+的主要内容,如果未能解决你的问题,请参考以下文章