排除 [\W\d]+ 正则表达式中匹配的句点字符

Jab*_*abb 1 python regex

我想从字符串中删除除字母字符和句点之外的所有内容。我用 python 做了下面的函数。我将如何扩展正则表达式,以便不从字符串中删除句点?这需要适用于 unicode 字符串。

def normalize(self, text):
    text = re.sub(ur"(?u)[\W\d]+", ' ', text)
    print text
    return text
Run Code Online (Sandbox Code Playgroud)

yur*_*rib 5

将语义从“删除该组中的所有内容”更改为“删除不属于该组的所有内容”并使用:

\n\n
text = re.sub(ur"(?u)[^a-zA-Z\\.]+", \' \', text)\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新

\n\n

我不认为上述解决方案适用于所有 unicode 字母表。
\n这里的答案提供了支持 unicode 字母组的内置模块的替代模块re

\n\n

另一种选择是将两种方法结合起来:

\n\n
>>> text = \'1234abcd.\xc3\xa0!@#$\'\n>>> re.sub(ur\'(?u)([^\\w\\.]|\\d)+\',\' \',text)\n\' abcd.\\xc3 \'\n
Run Code Online (Sandbox Code Playgroud)\n