我想在“Flavor”一词后添加空格,但在每个字母后都有空格。这是我的代码:
re.sub(r'(?<=["Flavor"])(?=[^\s])', r' ', short_description)
我的 python shell 结果
>>>'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), 白寡妇 (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
后跟 0 个或多个空白字符 Flavor
(在 Flavor
之后正好有 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 )
)。
另请注意,正如上面提到的评论者,您使用的正则表达式指定了一个字符类 ["Flavor"]
, 因此在任何这些指定字符后添加一个空格:", F, l, a, v, o, r
.
关于python re如何在特定单词后留出空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69382963/