-2

我想在数字和文本之间添加空格

示例字符串:ABC24.00XYZ58.28PQR

输出:ABC 24.00 XYZ 58.28 PQR

请让我知道答案。

非常感谢。

4

4 回答 4

1

您可以使用re.sub反向引用捕获的组来添加空格:

s = 'ABC24.00XYZ58.28PQR'

 re.sub('(\d+(\.\d+)?)', r' \1 ', s).strip()
# 'ABC 24.00 XYZ 58.28 PQR'

演示

于 2020-04-13T08:43:52.647 回答
0

您可以使用re.split将输入字符串分隔为标记列表。然后用空格连接所有这些标记。

import re

s = "ABC24.00XYZ58.28PQR"
split = [c for c in re.split(r'([-+]?\d*\.\d+|\d+)', s) if c]
result = " ".join(split)
print(result)

输出:

ABC 24.00 XYZ 58.28 PQR

正则表达式r'([-+]?\d*\.\d+|\d+)'应该相当健壮,并且还可以检测类型的-12浮点数+5.0

于 2020-04-13T08:58:38.597 回答
0

如果没有更多要求,您可以使用正则表达式:

import re

s = "ABC24.00XYZ58.28PQR"
s = re.sub("[A-Za-z]+",lambda group:" "+group[0]+" ",s)
print(s.strip())
于 2020-04-13T08:59:19.837 回答
-1

连接字符串并将数字转换为字符串类型:

print ("AB" + " "+ str(34)) //or
print ("AB " + str(34))

如果要在字符串中添加空格,请使用 Regex 参考: python regex add space 只要数字与非数字相邻

于 2020-04-13T08:48:02.840 回答