【发布时间】:2016-07-21 19:11:38
【问题描述】:
我刚启动 PySpark,任务如下:
我有一个输入:
我需要使用正则表达式来删除标点符号以及所有前导或尾随空格和下划线。输出全部小写。
我想的不完整:
sentence = regexp_replace(trim(lower(column)), '\\*\s\W\s*\\*_', '')
结果是:
如何在此处修复正则表达式?我需要在这里使用 regexp_replace。
非常感谢。
【问题讨论】:
-
文本是什么?预期的结果是什么?
-
尝试
^[ \t_*]+|[ \t_*]+$(或者 - 如果默认情况下未启用多行 -(?m)^[ \t_*]+|[ \t_*]+$)。如果它不起作用,请准确说明您需要删除什么并提供输入/预期输出样本。 -
预期的是:
hi you和no underscore和remove punctuation then spaces,谢谢 -
有了这些结果,相同的正则表达式将使
" The Elephant's 4 cats. "变为"the elephants 4 cats" -
看来你可以用
^\W+|\W+$|[^\w\s]+|_。 ^ 和 $ 锚点必须匹配行的开始/结束。如果模式不能跨行溢出。将\W+$替换为[^\w\n]+$,将^\W+替换为^[^\w\n]+。