我正在尝试从文本中删除一些垃圾,并希望删除所有在2个字符中间有“,”的单词。我试过了两个表达式
r'\s.*;.*\s' and r'\s.*\W.*\s'
在本文中
'the cat as;asas was wjdwi;qs at home'
它似乎错过了一些空白区域,返回
'cat as;asas was wjdwi;qs at '
当我需要时
'the cat was at home'
答案 0 :(得分:4)
简单的解决方案是不使用正则表达式:
s = 'the cat as;asas was wjdwi;qs at home'
res = ' '.join(w for w in s.split() if ';' not in w)
# the cat was at home
您可能需要更复杂的检查,但先将其拆分为“单词”,然后对每个“单词”应用检查...
答案 1 :(得分:0)
您可以使用:
re.sub(r'(?i)\s?[a-z]+;[a-z]+\s?', ' ', yourstr)