【发布时间】:2018-11-01 09:41:32
【问题描述】:
鉴于此文本“hey a2a 3beauty hou\se heyYou2”,我想只保留以字母开头并以 a-z、A-Z 或数字继续的单词。所以这将是我想要的输出:“hey a2a heyYou2”。
到目前为止,我的解决方案是通过 text.split() 函数:
text = "hey a2a 3beauty hou\se heyYou2"
text = text.split()
text = [w for w in text if re.search(r"^[a-zA-Z][a-zA-Z0-9]*$", w) is not None]
' '.join(text)
Out[55]: 'hey a2a heyYou2'
有没有一种快速、更有效的方法可以使用正则表达式实现这一点,而无需将文本拆分为单词列表?
【问题讨论】:
-
感谢维克托。这会比我的解决方案更快,对吧?
-
不知道,不一定要更快,请随意测试。
-
@pyd 你已经在这里了,在 SO :) 每天观看正则表达式标签,尝试解决问题。
-
酷,我会发布。