python re 如何在特定单词后给出 space?

python re how to give space after specific word?

我想在单词 'Flavor' 之后添加 space,但在每个字母之后都添加 space。这是我的代码:

re.sub(r'(?<=["Flavor"])(?=[^\s])', r' ', short_description)

我的pythonshell结果 >>>'F l a v o r BLACKWATER OG (I), APPLE JACK (S), BLACKBERRY KUSH (I), SOUR TANGIE (S), SUNSET GELATO (H), GORILLA GLUE 4 (H), GRAND DADDY PURP (I), WHITE WIDOW (S), NAPALM OG (I)'

我预计会得到这个结果:

'Flavor BLACKWATER OG (I), APPLE JACK (S), BLACKBERRY KUSH (I), SOUR TANGIE (S), SUNSET GELATO (H), GORILLA GLUE 4 (H), GRAND DADDY PURP (I), WHITE WIDOW (S), NAPALM OG (I)'

re.sub 与下面显示的正则表达式一起使用,以用 Flavor 替换每个出现的 Flavor 后跟 0 个或多个空白字符(在 [=13= 之后恰好有 1 个空格) ]):

import re
short_descriptions = [
    'FlavorBLACKWATER OG',
    'Flavor BLACKWATER OG',
    'Flavor  BLACKWATER OG'
]
for short_description in short_descriptions:
    print(re.sub(r'Flavor\s*', r'Flavor ', short_description))

打印:

Flavor BLACKWATER OG
Flavor BLACKWATER OG
Flavor BLACKWATER OG

请注意,上面的正则表达式完全避免了后视 ((?<=Flavor ))。
另请注意,正如上面提到的评论者,您使用的正则表达式指定了一个字符 class ["Flavor"],因此在任何这些指定字符后添加一个空格:", F, l, a, v, o, r.