我正在尝试使用 re.findall() 函数来测试包含一组所有字母单词的句子。这是我的代码:
import re
s = 'Hello from the other side'
lst = re.findall('[:alpha:]', s)
print (lst)
关于如何更改代码有什么建议吗?
请您参考如下方法:
Python 不支持 POSIX :alpha:。改为这样写:
re.findall(r'[A-Za-z]+', s)
避免使用 \w+,它除了字母字符外还接受下划线和数字。 \w+ 唯一真正的优势是它与 re.LOCALE 标志。
当我解析自然句子以提取整个单词时,我通常会扩展允许的字符以也允许连字符和撇号:
re.findall(r"[A-Za-z\-\']+", s)
这将接受“不要”、“重新发明”和“死胡同”等词,但会拒绝数字、下划线、空格、引号和其他标点符号。
