python-3.x 如何删除字符串中的空格(某些元素之间的空格除外)

ee7vknir  于 2022-12-05  发布在  Python
关注(0)|答案(3)|浏览(155)

我有一个类似的字符串(下面的一个是简化的):

"  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)转换为?

xienkqul

xienkqul1#

若要解决这个问题,您可以使用正则表达式来寻找并取代空白字符。特别是,您可以使用re.sub函数来搜寻大括号外的空白字符,并将其取代为空字串。
下面是一个如何使用re.sub解决此问题的示例:

import re

# Define the input string
input_str = " word= {his or her} whatever "

# Use a regular expression to search for whitespace characters outside of the curly braces
output_str = re.sub(r'\s+(?![^{]*})', '', input_str)

# Print the result
print(output_str)

此代码将按如下方式打印修改后的字符串:

word={his or her}whatever

正则表达式r '\s+(?![^{]*})'匹配您要从字符串中删除的空格。负lookaheadAssert确保匹配项后面不跟{...}形式的字符串,这样大括号之间的空格就不会被删除。' re.sub函数将这些匹配项替换为空字符串。从而有效地从输入字符串中移除空白字符。
您可以使用这个方法来修改字串,并移除大括号外的空白字符。

sg2wtvxw

sg2wtvxw2#

你可以用string.replace来代替re。当你玩字符串的时候,这会更容易,也更简单。当你有多个替代的时候,你会得到更大的regex

st ="  word=       {his or her}      whatever  "
st2="""  word=       {his or her} and "his or her"      whatever  """

new = " ".join(st2.split())
new = new.replace("= ", "=").replace("} ", "}").replace('" ' , '"').replace(' "' , '"')
print(new)

一些输出

示例1输出

word={his or her}whatever

示例2输出

word={his or her}and"his or her"whatever
ghhaqwfi

ghhaqwfi3#

您可以使用替换

def remove(string):
    return string.replace(" ", "")

string = 'hell o whatever'
print(remove(string)) // Output: hellowhatever

相关问题