- Published on
常用正则_python_re
# 移除句子标点符号
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)