【发布时间】:2017-12-29 20:56:46
【问题描述】:
我正在使用以下正则表达式从string 中去除非字母数字字符(不删除空格)。
pattern = re.compile('([^\s\w]|_)+', re.UNICODE)
但是,过滤后我仍然得到以下字符串:
ç
√§√§√§ √° √°
à
åî òëâáä
öè
ãóûåüôç ñùü
ç ç
ôùñ öùî íîêïî
îïáìõáíö
ùèõáíö
òííòê õáíö
ø â áí
åîæíî
ííö ùîòõàä
√§
èèñ ñùü
èèñ ñùü
äóòåô êã
ïùùïäó ñùü
üíûçôñó ñùü
如何使用正则表达式处理它们?我希望上述字符串在删除非字母数字字符后变为空字符串。
我有一个我正在尝试预处理的用户查询列表。我提供的相关代码sn-p如下。
query_text = ' '.join([pattern.sub(' ', word) for word in tokens[1].lower().split()])
query_text = query_text.strip()
请注意:
- 我正在处理的问题是删除除给定字符串的空格之外的任何非字母数字字符。
- 删除基于英语的非字母数字字符。
【问题讨论】:
-
您只需显示编译表达式的代码。您实际使用的代码在哪里?
-
@BrenBarn 添加了。
-
不清楚您要做什么。这里的过滤是什么?
pattern.sub? -
基于哪种语言的非字母数字字符?英语/拉丁语?
-
我正在尝试删除基于英语的非字母数字字符。是的,
pattern.sub就是这里的过滤过程。
标签: python