我试图使用re.findall()函数来测试具有一组所有字母单词的句子。这是我的代码:
import re
s = 'Hello from the other side'
lst = re.findall('[:alpha:]', s)
print (lst)
有关如何更改代码的任何建议?
答案 0 :(得分:5)
Python不支持POSIX :alpha:
。写下这个:
re.findall(r'[A-Za-z]+', s)
除了字母字符外,避免使用接受下划线和数字的\w+
。 \w+
唯一真正的优点是它适用于。{1}}
re.LOCALE
旗帜。
当我解析自然语句以提取整个单词时,我通常会扩展允许的字符以允许连字符和撇号:
re.findall(r"[A-Za-z\-\']+", s)
这将接受“不要”,“重新发明”和“死胡同”之类的词语,但会拒绝数字,下划线,空格,引号和其他标点符号。