我是正则表达式的新手,我正在尝试创建一个模块化函数来读取 python 中的文件(在命令行上)并使用正则表达式从字符串列表中删除数字和特殊字符并返回为小写字符串。 如果有任何方法可以使我的代码更简单,我将不胜感激。我的目标是执行提取一些基本文本并执行分析。在这种情况下,我尝试分析正文中的单词。 感谢您的帮助。
获取字符串列表并将其作为
返回去除数字和特殊字符的小写字符串
def normalize(text):
return_string = ' '.join(text)
return_string = re.sub(r'[0-9]+', '', return_string)
return_string = re.sub(r'[,]+', '', return_string)
return_string = re.sub(r'[.]+', '', return_string)
return_string = re.sub(r'[;]+', '', return_string)
return_string = re.sub(r'[?]+', '', return_string)
return_string = re.sub(r'[*]+', '', return_string)
return_string = re.sub(r'[-]+', ' ', return_string)
return_string = re.sub(r'[_]+', '', return_string)
return_string = re.sub(r'[\"]+', '', return_string)
return return_string.lower()
if __name__ == '__main__':
words = read_in_file('sample.txt')
words = normalize(words)
print(words)
请您参考如下方法:
这就没有那么冗长了。如果您只想接受 a-z 值,使用 [] 中的 ^ 来指定您想要的正则表达式要容易得多。
def normalize(text):
return re.sub('[^a-z]', '', ' '.join(text).lower())
