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

时间:2019-06-03 12:02:40

标签: regex pyspark regexp-replace

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

我尝试使用正则表达式,例如[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"

谢谢

2 个答案:

答案 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])', ''))