我需要使用正则表达式查找并替换长字符串中数字之间的任何空格。
我尝试使用正则表达式,例如[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"
谢谢
答案 0 :(得分:3)
这是使用捕获组执行此操作的一种方法:
.withColumn('free_text', regexp_replace('free_text', '([0-9])\s([0-9])', '$1$2'))
这里的想法是匹配和并捕获由它们之间的空格字符分隔的两个数字。然后,我们可以用相邻的两位代替。
答案 1 :(得分:2)
您的模式匹配一个数字,空格字符和一个数字。请注意,\s
也与换行符匹配。
如果支持,则可以使用环视方法而不是匹配数字:
(?<=[0-9])\s(?=[0-9])
.withColumn('free_text', regexp_replace('free_text', '(?<=[0-9])\s(?=[0-9])', ''))