如何只删除字符串特定部分的空格

How to delete whitespace in only a certain part of the string

假设我有这样的字符串

string = 'abcd <# string that has whitespace> efgh'

而且我想删除这个<#...>里面的所有白色space并且不影响外面的任何东西<#...>

<#...> 之外的字符也可以更改,因此 <#...> 不会处于固定位置。

我应该怎么做?

这不是一个复杂的操作。你就像做人一样去做。找到两个分隔符,保留第一个分隔符之前的部分,去掉中间的space,剩下的保留

string = 'abcd <# string that has whitespace> efgh'

i1 = string.find('<#')
i2 = string.find('>')

res = string[:i1] + string[i1:i2].replace(' ','') + string[i2:]
print(res)

输出:

abcd <#stringthathaswhitespace> efgh

这个怎么样...

string = 'abcd <# string that has whitespace> efgh'
s = string.split()
s = ' '.join( (s[0], ''.join(s[1:-1]), s[-1]) )

如果 <#...> 始终存在,查找字符串的一种方法是使用正则表达式 (regex) 搜索包含您要修改的字符的字符串部分。然后你需要去掉白色 space.

了解正则表达式需要一些时间,但它们可以成为强大的工具。 Regex