当数字之间有空格时,用正则表达式连接它们


Regex to join numbers when they have spaces between them

我试图建立一个正则表达式,当它们之间有空格时,将数字连接在字符串中,例如:

$string = "I want to go home 8890 7463 and then go to 58639 6312 the cinema"

正则表达式应该输出:

"I want to go home 88907463 and then go to 586396312 the cinema"

正则表达式可以是python语言也可以是php语言

谢谢!

使用前向查找来查看下一个块是否是一组数字,并删除尾随空格。这样,它适用于任何数量的集合(我怀疑您可能想要):

$string = "I want to go home 8890 7463 41234 and then go to 58639 6312 the cinema";
$newstring = preg_replace("/'b('d+)'s+(?='d+'b)/", "$1", $string);
// Note: Remove the 'b on both sides if you want any words with a number combined.
// The 'b tokens ensure that only blocks with only numbers are merged.
echo $newstring;
// I want to go home 8890746341234 and then go to 586396312 the cinema

Python:

import re
text = 'abc 123 456 789 xyz'
text = re.sub(r'('d+)'s+(?='d)', r''1', text)  # abc 123456789 xyz

此方法适用于任意数量的连续数字组,其中包含任意数量的间隔