0

有没有办法将多个正则表达式组合成一个,这样它就可以一次完成不同的子程序?

no_Punct = re.sub('(\w)([?:!.,;-]+)(\s)',r'\1 ',raw)
no_Punct = re.sub('(\s)([-]+)(\s)',r'\1',no_Punct)

输入字符串是“原始”。我试图去掉单词末尾的某些标点符号,并删除每边被空格包围的连字符。我可以将这两者结合到一个语句中吗?

给定输入:这是一个句子!四分之一等于 0.25。

输出是:这是一个四分之一等于 0.25 的句子

4

1 回答 1

5

微不足道,只需将一个替换为另一个:

no_Punct = re.sub('(\s)([-]+)(\s)', r'\1', re.sub('(\w)([?:!.,;-]+)(\s)', r'\1 ', raw))

虽然这也可能有效:

no_Punct = re.sub('(?<=\w)[?:!.,;-]+(?=\s)|(?<=\s)-+\s', '', raw)
于 2012-10-31T23:13:51.120 回答