python学习笔记-正则表达式

4 阅读1分钟

正则表达式常规用法

先导入re模块,这是标准库自带的, sero=re.compile(r'\d\d\d\d-\d\d\d\d')返回一个Regex对象,记得用原始字符串r‘’, mo=sero.search('查找的字符串'),如果没有找到,search()返回None,如果找到了,返回一个Match对象,Match对象里面有一个group(),它返回被查找字符串中实际匹配的文本。mo是变量名称,用户保持Match对象。

import  re
c_num='中国电话号码0321-32323338,前'
phone_number=re.compile(r'\d\d\d\d-\d\d\d\d\d\d\d\d')
mo=phone_number.search(c_num)
print('电话号码是:',mo.group())

利用括号对表达式进行分组

用括号(\d\d\d)-(\d\d\d\d)然后用group()去匹配,group(0)默认参数是0,就是整体输出,group(1),第一组,group(2)第二组

c_num='中国电话号码0321-32323338,'p_num=re.compile(r'(\d\d\d\d)-(\d\d\d\d\d\d\d\d)')
mo=p_num.search(c_num)
print('区号是:',mo.group(1))
print('区号是:',mo.group(2))
print('全号是:',mo.group(0))
'''
区号是: 0321
区号是: 32323338
全号是: 0321-32323338 
'''

用管道匹配多个分组

希望匹配多个表达式中的一个是,’|‘ 相当于或者

r'hello|world'将匹配'hello'或者'world'

#用管道匹配多个分组
a=re.compile(r'hello|world')
mo=a.search('nihao world whello world!')
print(mo.group())
#输出 world

输入验证模块 pyinputplus

Pip install pyinputplus

import pyinputplus as pyip
num=pyip.inputNum('请输入数字:',min=4,max=10,limit=3,timeout=5)#限制3次输入,5秒超时报错
print(num)
s=pyip.inputStr('please input str:')
print(s)

太复杂的先不学了,只学几个简单的吧。