如何只连接字符串中的连续数字?

时间:2018-03-23 15:10:49

标签: python string numbers concatenation

我有一个包含文字和数字的字符串,例如:

string = "Hello this is 123 456 a string for test 12 345 678. I want to merge 12 34 56"

我希望只有连续的数字,例如:

newString = "Hello this is 123456 a string for test 12345678. I want to merge 123456"

如何检测数字,检查它们是否连续并连接它们?

谢谢!

2 个答案:

答案 0 :(得分:4)

这是使用正则表达式的一种方式:

import re
text = "Hello this is 123 456 a string for test 12 345 678. I want to merge 12 34 56"
newText = re.sub(r"(?<=\d)\s(?=\d)", '', text)
print(newText)
#'Hello this is 123456 a string for test 12345678. I want to merge 123456'

<强>解释

我们正在做的是用空字符串替换数字包围的任何空格。

  • (?<=\d)表示数字(\d
  • 的正面观察
  • \s表示匹配空格字符
  • (?=\d)表示数字正面预测

答案 1 :(得分:3)

使用re.sub()函数和特定的正则表达式模式:

import re

s =  "Hello this is 123 456 a string for test 12 345 678. I want to merge 12 34 56"
result = re.sub(r'(\d+)\s+(\d+?)', '\\1\\2', s)

print(result)

输出:

Hello this is 123456 a string for test 12345678. I want to merge 123456