我有一个扫描的文本,单词中可能有一些垃圾字符。垃圾字符通常不是字母数字或标点符号。

我有以下正则表达式:

garbage_pat = re.compile(r"(\w*(?P<and>[^a-zA-Z0-9_ \t\n\r\f\v,.?!;:])+[\w(?P=and)]*)")


此正则表达式正确查找包含一个垃圾字符的单词。如果有两个或多个垃圾字符,则正则表达式将拆分单词。
例如,aut〜moil将分为两个词。当包含两个或多个垃圾字符时,我如何使我的正则表达式返回整个单词。

最佳答案

似乎您正在寻找这样的表达式:

(\w*(?:[^a-zA-Z0-9_ \t\n\r\f\v,.?!;:]\w*)+)

07-25 21:51