例子1:验证输入用户名和QQ号是否有效并给出对应的提示信息。
'''
验证输入用户名是否有效, 并给出对应的提示信息
要求: 用户名必须由字母, 数字或下划线构成, 且长度在6~20个字符之间, QQ号, 是5~12的数字, 且首位不能为0
'''
import re
def main():
username = input('请输入用户名: ')
qq = input('请输入qq号')
m1 = re.match(r'^[0-9a-z-A-Z_]{6,20}$', username)
if not m1:
print('请输入有效的用户名')
m2 = re.match(r'^[1-9]\d{4,11}$', qq)
if not m2:
print('请输入有效的 qq 号')
if m1 and m2:
print('你输入的信息是有效的')
if __name__ == '__main__':
main()
请输入用户名: ksdkfj12435
请输入qq号skdfj23435
请输入有效的 qq 号
例子2:从一段文字中提取出国内手机号码。
import re
def main():
pattern = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)')
sentence = '''
重要的事情说8130123456789遍,我的手机号是13512346789这个靓号,
不是15600998765,也是110或119,王大锤的手机号才是15600998765。
'''
mylist = re.findall(pattern, sentence)
print(mylist)
print('-------------华丽分割--------------')
for temp in pattern.finditer(sentence):
print(temp.group())
print('--------------华丽分割--------------')
m = pattern.search(sentence)
if __name__ == '__main__':
main()
['13512346789', '15600998765', '15600998765']
-------------华丽分割--------------
13512346789
15600998765
15600998765
--------------华丽分割--------------
例子3:替换字符串中的不良内容
import re
def main():
sentence = '你丫是傻叉吗? 我操你大爷的. Fuck you.'
purified = re.sub('[操肏艹]|fuck|shit|傻[比屄逼叉缺吊屌]|煞笔', '*', sentence, flags = re.IGNORECASE)
print(purified)
if __name__ == '__main__':
main()
你丫是*吗? 我*你大爷的. * you.
例子4:拆分长字符串
import re
def main():
poem = '窗前明月光,疑是地上霜。举头望明月,低头思故乡。'
sentence_list = re.split(r'[,。,.]', poem)
while '' in sentence_list:
sentence_list.remove('')
print(sentence_list)
if __name__ == '__main__':
main()
['窗前明月光', '疑是地上霜', '举头望明月', '低头思故乡']