如何删除 python 中字符串中特定区域的空格?

How to remove whitespaces at a particular region in a string in python?

我正在尝试删除字符串中特定区域的空格以获得特定输出。

我拥有的不同字符串集是:

gehehntk 45.5 % 43 - 83 5243 /g.mt 25674 - 65748
bin 9.6 md% 346347 - 36537 
tub 31.8 % 3658 - 5585  calci

所以我想要的输出是:

gehehntk 45.5 % 43-83 5243 /g.mt 25674-65748
bin 9.6 md% 346347-36537 
tub 31.8 % 3658-5585  calci

我尝试使用正则表达式但无法实现输出:

r"\b.*?\s(\d+(?:\.\d+)?)(?!\S)"

我们可以在这里尝试使用 re.sub

inp = """Polymorphs 60.3 % 40 - 80 5246 /c.mm 2000 - 7000
Haemoglobin 9.6 gm% 12.0 - 15.0 
PCV 31.8 % 36 - 46  Calculated"""

output = re.sub(r'\b(\d+)\s+-\s+(\d+)\b', r'-', inp)
print(output)

这会打印:

Polymorphs 60.3 % 40-80 5246 /c.mm 2000-7000
Haemoglobin 9.6 gm% 12.0-15.0 
PCV 31.8 % 36-46  Calculated

如果只需要将“-”替换为“-”,可以使用replace

s= """Polymorphs 60.3 % 40 - 80 5246 /c.mm 2000 - 7000
Haemoglobin 9.6 gm% 12.0 - 15.0 
PCV 31.8 % 36 - 46  Calculated"""

print(s.replace (" - ", "-"))