Python 深入正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 深入正则表达式相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python3
import re
‘‘‘
#常用功能介绍
[Pp]ython 匹配 "Python" 或 "python"
rub[ye] 匹配 "ruby" 或 "rube"
[aeiou] 匹配中括号内的任意一个字母
[0-9] 匹配任何数字。类似于 [0123456789]
[a-z] 匹配任何小写字母
[A-Z] 匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字
[^aeiou] 除了aeiou字母以外的所有字符
[^0-9] 匹配除了数字外的字符
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 ‘\n‘ 在内的任何字符,请使用象 ‘[.\n]‘ 的模式。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w 匹配包括下划线的任何单词字符。等价于‘[A-Za-z0-9_]‘。
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。
‘‘‘
strings = ‘1k3jksl24kljzdio43ndsfoi4nsadf‘
#re.compile() : complie()先将需要匹配的对象进行编译,好处是 提高执行速度
re_complie=re.compile("[0-9]+")
#match 从整个对象的开头开始匹配,返回的类型是字符串
sb = re_complie.match(strings)
print(sb.group())
#search 在整个对象中查找,找到第一个就返回值,返回的类型是字符串
sb = re_complie.search(strings)
print(sb.group())
#findall 在整个对象中查找,返回一个列表
sb = re_complie.findall(strings)
print(sb)
#re.split(): split()用户分割对象
#split 将匹配到的格式当做分割点对字符串分割成列表
sb = re_complie.split(strings)
print(sb)
#sub 替换匹配到的字符
#count 指定替换多少个;例如本例中找到5个元素,指定替换四个元素
sb = re_complie.sub("|",strings,count=4)
print(sb)
#实例1: 匹配手机号
phone_number = ‘my name is andy , my phone number is 13162156638 , your call me andy‘
p_number= re.search("(1)[3458][0-9]{9}",phone_number) #方法一
p_number= re.search("(1)[3458]\d{9}",phone_number) #方法二
print(p_number)
#实例2: 匹配IP地址
ipaddress = "inet 192.168.60.223 netmask 0xffffff00 broadcast 192.168.60.255"
ip = re.search("(\d{3}.){2}(\d{1,3}.){2}",ipaddress) #方法一
ip = re.search("(\d{1,3}.){4}",ipaddress) #方法二
print(ip.group())
#实例3: 分组匹配
message = ‘Oldboy School, Beijing Changping Shahe: 010-8343245‘
match = re.search(r‘(\w+) (\w+) (\S+)‘,message)
print(match.group())
#实例3: 匹配email地址
message = ‘[email protected] http://blog.163.com‘
emails = "[email protected] http://www.oldboyedu.com"
email = re.search("[a-zA-z0-9][email protected][0-9]+\.com",message)
m = re.search(r"[0-9.a-z]{0,26}@[0-9.a-z]{0,20}.[0-9a-z]{0,8}", emails)
print(email.group())
print(m.group())
以上是关于Python 深入正则表达式的主要内容,如果未能解决你的问题,请参考以下文章