Eu estava tentando substituir [
& ]
de uma sequência de fórmulas como:
col_formula:regexp_replace( regexp_replace([`cellid`], "(.*)_N", "N"), "_(.*)", "")
var replaced_col_formula= col_formula.replaceAll("/[\\[\\]']+/g", "")
println(s"replaced_col_formula:$replaced_col_formula")
replaced_col_formula:regexp_replace( regexp_replace([`cellid`], "(.*)_N", "N"), "_(.*)", "")
Eu esperava algo como abaixo
replaced_col_formula:regexp_replace( regexp_replace(cellid, "(.*)_N", "N"), "_(.*)", "")
Primeiro de tudo, você deve usar apenas um padrão de string
"example_pattern"
( ) no Spark ao usar , não uma notação.regex_replace
literal regex ( )./example_pattern/
Além disso,
regexp_replace
substitui todas as ocorrências de uma correspondência na string de entrada por padrão, então você não deve procurar uma maneira de passar qualquer tipo de sinalizador "global" para a expressão regular.Então, você pode usar
Veja a demonstração do regex .
Detalhes
\[`
- uma[`
substring(.*?)
- Grupo 1 (posteriormente referido com$1
referência de substituição): quaisquer zero ou mais caracteres (exceto caracteres de quebra de linha) o mínimo possível`]
- uma`]
substring.