【发布时间】:2021-09-29 20:26:41
【问题描述】:
我正在尝试在单词“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), 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)'
【问题讨论】:
-
为什么不只是
short_description.replace('Flavor','Flavor ')?这不是一个真正的正则表达式问题。 -
@Tim Roberts 感谢您的建议,但我们可以在正则表达式中进行吗?
-
我第二个蒂姆。您的代码中的具体问题是
[chars]表示“c,h,a,r,s中的任何一个”。如果要完全匹配文本,请使用chars(不带方括号)。 -
re.sub(r'(?<=Flavor\s)', r' ', short_description)或只是re.sub(r'(?<=Flavor )', r' ', short_description) -
除非您需要正则表达式,否则不应使用正则表达式。与简单的字符串搜索相比,正则表达式的开销很大。
标签: python python-3.x python-re