如何在字符串列中的数字之间查找和替换 space?

How to find and replace space between digits in a string column?

我需要使用正则表达式查找并替换长字符串中数字之间的任何 space。

我试过使用正则表达式如[0-9][\s][0-9]然后regexp_replace如.withColumn('free_text', regexp_replace('free_text', '[0-9][\s][0-9]', ''))。 但是,正则表达式匹配 1(space)4 我只想 (space)

这是一个例子:

我有: "Hello. I am Marie. My number is 768 990"

我想要的是: "Hello. I am Marie. My number is 768990"

谢谢,

这是使用捕获组执行此操作的一种方法:

.withColumn('free_text', regexp_replace('free_text', '([0-9])\s([0-9])', ''))

这里的想法是匹配 捕获由空白字符分隔的两个数字。然后,我们可以只替换相邻的两位数。

您的模式匹配一​​个数字、一个空白字符和一个数字。请注意 \s 也匹配换行符。

如果支持,您可以使用环视而不是匹配数字:

(?<=[0-9])\s(?=[0-9])


.withColumn('free_text', regexp_replace('free_text', '(?<=[0-9])\s(?=[0-9])', ''))