Python正则表达式

正则表达式参考文档
正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容。比如通过正则判断一串数字是否是电话号码,或者判断一个字符串是否是电子邮箱等等。
Python 中的正则用到了 re 模块。一般使用步骤是先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本并得到匹配结果,然后根据结果信息,进行其他的操作。

1.match和search

import re

string = "I'm learning Python on this website."
pattern = re.compile(r'Python')

match = pattern.match(string)
search = pattern.search(string)

if match:
    print(u"match 结果: " + match.group())
else:
    print(u"match 结果: No match.")

if search:
    print(u"search 结果: " + search.group())
else:
    print(u"search 结果: No search.")

这里写图片描述
match() 只匹配字符串的起始,如果开始不匹配,便会返回 None,而 search() 是从头至尾对字符串进行匹配。

2.sub

import re

time = "2017-10-01"
pattern = re.compile(r'\D')     #\D表示匹配任意非数字
sub = pattern.sub("/", time)    #sub(替换后的字符,要匹配的字符)
print(sub)

print(re.sub(r'\D', "/", time)) #也可以简写成这样


3. 一个例子

import re

#正则匹配电话号码
phone = input('phone number: ')
pattern = re.compile('^0\d{2,3}\d{7,8}$|^1[3578]\d{9}$|^147\d{8}$')
match = pattern.match(phone)

if match:
    print(match.group())
else:
    print("error")

# 解释以下这个正则表达式
# ^表示匹配字符串开头
# $表示匹配字符串结尾
# \d表示匹配任意数字

# ^0\d{2,3}\d{7,8}$为座机格式
# 0是第一个数字,后面接2到3个数字组成区号,加上7或8位电话号

# ^1[3578]\d{9}$为手机号格式
# 1是第一个数字,第二个数字可能是3或5或7或8,后面接9位数字

# ^147\d{8}$为移动特殊号段
# 以147开头,后面接8位数字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值