开发者

Regex to join numbers when they have spaces between them

I'm trying to build a regex that joins numbers in a string when they have spaces between them, ex:

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

The regex should output:

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

The regex can be eithe开发者_如何学编程r in python or php language.

Thanks!


Use a look-ahead to see if the next block is a set of numbers and remove the trailing space. That way, it works for any number of sets (which I suspected you might want):

$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

This works for any number of consecutive number groups, with any amount of spacing in-between.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜