正则题--什么时候才能到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+的主要内容,如果未能解决你的问题,请参考以下文章

值两侧的测量单位的正则表达式 (200 g/g 200)

jQuery1990到2008年的正则表达式怎么写?

什么时间用正则表达式什么时间用json提取器

js正则匹配,怎样才能匹配到需要的js呢

Jmeter5.2.1 正则表达式

Jmeter5.2.1 正则表达式