# 移除句子标点符号
import re
import string
from zhon.hanzi import punctuation
text = "I have - a dream . ?"
re.sub(r"[%s]+|[%s]+" % (punctuation, string.punctuation), "", text)
# output: "I have a dream " 需要处理连续空格
# 英文连在一起的句子拆开
def pre_tokenize(eng):
def callback_repl(matchobj):
return matchobj.group(1) + '. ' + matchobj.group(2)
# 匹配 "I have a dream.We have" 为 dream. We
# 注意. 后的匹配需要大写字母和小写字母同时拥有
# 如果是 "have dream.I" 这样则不能匹配成功
return re.sub('( [a-z0-9 ]{2,})\.([A-Z][a-z])', callback_repl, eng)
# 匹配一些特殊符号
question = re.compile(r'\?{3,}') # ''三次及三次以上?
bad_mrk = re.compile(r'[¶©↓]')
re.search(bad_mrk, line)
# 替换句子中多个空格 为 1个空格
re.sub(r'\s{2,}', ' ', sentence)
End
本文标题:常用正则 python re
本文链接:https://www.tzer.top/archives/236.html
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议。
除非另有说明,本作品采用声明:转载请注明文章来源。
最后修改:2021 年 12 月 29 日
© 允许规范转载