我有一个类似的字符串(下面的一个是简化的):
" word= {his or her} whatever "
我想删除除{}之间的所有空格,这样修改后的字符串将是:
"word={his or her}whatever"
lstrip或rstrip当然不起作用。如果我删除所有空格,{}之间的空格也会被删除。我试图查找将替换函数限制在特定区域的解决方案,但即使我找到了,我也无法实现它。正则表达式中有一些东西(我不确定它们是否与此处相关),但我无法理解它们。
编辑:如果我想排除{}和“"之间的区域,即:
如果我想转动这根弦
" word= {his or her} and "his or her" whatever "
变成这样:
"word={his or her}and"his or her"whatever"
我会改变什么re.sub(r'\s+(?![^{]*})', '', list_name)
转换为?
3条答案
按热度按时间xienkqul1#
若要解决这个问题,您可以使用正则表达式来寻找并取代空白字符。特别是,您可以使用
re.sub
函数来搜寻大括号外的空白字符,并将其取代为空字串。下面是一个如何使用
re.sub
解决此问题的示例:此代码将按如下方式打印修改后的字符串:
正则表达式r '\s+(?![^{]*})'匹配您要从字符串中删除的空格。负lookaheadAssert确保匹配项后面不跟{...}形式的字符串,这样大括号之间的空格就不会被删除。' re.sub函数将这些匹配项替换为空字符串。从而有效地从输入字符串中移除空白字符。
您可以使用这个方法来修改字串,并移除大括号外的空白字符。
sg2wtvxw2#
你可以用
string.replace
来代替re
。当你玩字符串的时候,这会更容易,也更简单。当你有多个替代的时候,你会得到更大的regex
。一些输出
示例1输出
示例2输出
ghhaqwfi3#
您可以使用替换