正则表达式模式,用于匹配整个单词(如果有);在python中 我试图从文本中删除一些垃圾,并想删除所有有“2”字符中间的单词。我试过下面两种表达方式 r'\s.*;.*\s' and r'\s.*\W.*\s'

正则表达式模式,用于匹配整个单词(如果有);在python中 我试图从文本中删除一些垃圾,并想删除所有有“2”字符中间的单词。我试过下面两种表达方式 r'\s.*;.*\s' and r'\s.*\W.*\s',python,regex,Python,Regex,在本文中 'the cat as;asas was wjdwi;qs at home' 它似乎错过了一些空白,返回 'cat as;asas was wjdwi;qs at ' 当我需要的时候 'the cat was at home' 简单的解决方案是不使用正则表达式: s = 'the cat as;asas was wjdwi;qs at home' res = ' '.join(w for w in s.split() if ';' not in w) # the cat wa

在本文中

'the cat as;asas was wjdwi;qs at home'
它似乎错过了一些空白,返回

'cat as;asas was wjdwi;qs at '  
当我需要的时候

'the cat was at home'

简单的解决方案是不使用正则表达式:

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

您可能需要一个更复杂的检查,但首先将其拆分为“单词”,然后对每个“单词”应用检查。…

简单的解决方案是不使用正则表达式:

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
您可能需要更复杂的检查,但首先将其拆分为“单词”,然后对每个“单词”进行检查。…

您可以使用以下方法:

re.sub(r'(?i)\s?[a-z]+;[a-z]+\s?', ' ', yourstr)
您可以使用以下选项:

re.sub(r'(?i)\s?[a-z]+;[a-z]+\s?', ' ', yourstr)

更简洁的方式可能是:
re.sub(r'\s?\w+;\w+\s?,'',yourstr)
@renfredxh:不会,因为
\w
字符类也包含数字和下划线。更简洁的方式可能是:
re.sub(r'\s?\w+;\w+\s?,'',yourstr)
@renfredxh:没有,因为
\w
字符类也包含数字和下划线。