Stating it like that shows that your goal is impossible. You've exposed your own false assumptions:
— that any formatted measurement consists of 2 discrete parts: the formatted number and the units
— that any "spacing" between the parts is composed of whitespace characters only
— (worst of all) that the order of the parts isn't locale-specific (you don't return anything that indicates where the unit string was found in relation to the measurement string).
These conditions might be satisfied in some locales, but it's wrong to believe they must hold everywhere.
(What would you expect if the locale-specific string for 98 degrees Celsius was [the equivalent of] "2 degrees below boiling"?)
If you have a need to separate the quantity from the units, you can use a NumberFormatter for the number, and MeasurementFormatter.string(from:Unit) for the units. This would be appropriate if, for example, you were displaying a table with the numbers in one column and the units in another column. It wouldn't be appropriate for applying different styling in connected, localized text.
It is in the nature of programming for multiple locales that global assumptions must be very general. If you have a compelling need to do something more specific, you're going to have to write locale-specific code yourself.