正则表达式:匹配手机号
import re
def main():
"""
(?=exp): 匹配exp前面的位置
(?<=exp): 批准exp后面的位置
\D 匹配非数字
"""
patten = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)')
sentence = '''
重要的事情说98321838624遍,我的手机号是15721319091这个靓号,
不是15600998765,也是110或119,郭小二的手机号才是15600998765。
'''
# 查找所有匹配字符串并保存到一个列表中
mylist = re.findall(patten,sentence)
print(mylist)
print('------------------')
# 通过迭代器方式取出匹配对象: finditer() 查找字符串所有与正则表达式匹配的模式 返回一个迭代器
for temp in patten.finditer(sentence):
print(temp.group())
print('-------------------')
# 通过search函数搜索位置找出所有匹配
m = patten.search(sentence)
while m:
print(m.group())
m = patten.search(sentence,m.end())
if __name__ == '__main__':
main()
替换字符串中的不良内容
import re
def main():
sentence = '你TM是傻逼吗?我草你麻痹的.Fuck You.'
""""
sub(pattern, repl, string, count=0, flags=0)用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数
pattern:表示正则中的模式字符串
repl:替换字符串,如想把原本的字符串替换成空格,这里就写空格
string:想要进行替换的字符串文本
count:替换次数,可选参数,默认为0,表示替换所有的匹配
flags:可选参数,用于控制正则表达式的匹配方式,如:是否区分大小写
"""
filter = re.sub('[草操肏艹]|fuck|shit|TM|傻[比屄逼叉缺吊屌]|煞笔|麻痹','哈哈',sentence,flags=re.IGNORECASE)
print(filter)
if __name__ == '__main__':
main()
长字符串拆分
import re
def main():
poem = '落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨;雁阵惊寒,声断衡阳之浦。'
sentence_list = re.split(r'[,.,.]',poem)
print(poem)
print(sentence_list)
if __name__ == '__main__':
main()