匹配整个单词的正则表达式模式,如果它有;在python中的单词

时间:2013-11-23 17:35:32

标签: python regex

我正在尝试从文本中删除一些垃圾,并希望删除所有在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'

2 个答案:

答案 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)