如何在字符串列中的数字之间查找和替换 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])', ''))
我需要使用正则表达式查找并替换长字符串中数字之间的任何 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])', ''))