我试图编写一个简单的程序,从接收到的字符串中删除所有包含数字的单词。在
以下是我当前的实现:
import re
def checkio(text):
text = text.replace(",", " ").replace(".", " ") .replace("!", " ").replace("?", " ").lower()
counter = 0
words = text.split()
print words
for each in words:
if bool(re.search(r'\d', each)):
words.remove(each)
print words
checkio("1a4 4ad, d89dfsfaj.")
但是,当我执行这个程序时,我得到以下输出:
^{pr2}$我不明白为什么在第二行打印'4ad'
,因为它包含数字,应该从列表中删除。有什么想法吗?在
假设正则表达式执行所需的操作,可以这样做以避免在迭代时删除。在
另外,请注意,我简化了您的
text = text.replace(...)
行。在另外,如果不需要重用
^{pr2}$text
变量,可以使用regex直接拆分它。在这可以通过使用}来实现。在
re.sub
、re.search
和{如果要测试字母数字字符串,为什么不使用
isalnum()
而不是regex?在相关问题 更多 >
编程相关推荐