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
.
我想在单词 '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
.