Skip to content Skip to sidebar Skip to footer

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

Solution 1:

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

Solution 2:

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.

Post a Comment for "Regex To Join Numbers When They Have Spaces Between Them"