使用正则表达式时,我想仅将此字符的一次出现替换为2个或更多个连续的相同字符。 例如:eeee => ë
我想通过regexp_replace函数在配置单元中实现这一点。
我试过了:
regexp_replace("aaeebb", "(.)\\1{1,}", "\\1")
使用gsub R函数但不使用regexp_replace
答案 0 :(得分:1)
Scala的:
原始SQL
sqlContext.sql("""SELECT regexp_replace('aaeebb', '(.)\\1+', '$1')""")
DSL
df.select(regexp_replace(lit("aaeebb"), "(.)\\1+", "$1"))
PySpark:
原始SQL
sqlContext.sql("""SELECT regexp_replace('aaeebb', '(.)\\\\1+', '$1')""")
# or
sqlContext.sql(r"""SELECT regexp_replace('aaeebb', '(.)\\1+', '$1')""").show()
DSL
df.select(regexp_replace(lit("aaeebb"), "(.)\\1+", "$1"))
Spark SQL shell:
SELECT regexp_replace('aaeebb', '(.)\\1+', '$1');
Hive shell:
SELECT regexp_replace('aaeebb', '(.)\\1+', '$1');