regex - PySpark:使用正则表达式删除空格后的字符数字组合
问题描述
我有一列充满字符串,其中一些是这样的:“ Telefon T1”,“ Post P2,......现在我想删除单词后面的所有内容。例如,Telefon T1 变成了简单的 Telefon。我尝试了以下代码以各种方式,但它不断给我elephon。
df = df.withColumn('mycolumn', regexp_replace('mycolumn', '[*[ ]?[A-Z]?\d$]'', ""))
这不是一个 pyspark 问题,而是一个正则表达式问题。因此,如果您将此与列表一起使用,请替换“我会得到它”。谢谢
解决方案
您可以使用
df = df.withColumn('mycolumn', regexp_replace('mycolumn', '^\\s*(\\S+).*', '$1'))
查看正则表达式演示
细节
^
- 字符串的开始\s*
- 0+ 个空格(\S+)
- 第 1 组(从替换模式中引用$1
):任何 1 个或多个非空白字符.*
- 字符串的其余部分,除换行符之外的 0 个或多个字符,尽可能多。
替换模式中的$1
替换反向引用仅将 Group 1 值保留在结果中。
推荐阅读
- arduino - ESP32 Cam:发生致命错误:无法连接到 ESP32:等待数据包头超时
- c# - Main.axml 停留在“正在寻找自定义控件...”
- ios - iOS - NV12 到 I420 硬件加速
- javascript - JS 如何在不更改语言环境的情况下更改时区(时间格式)
- javascript - React 和轻量级图表 - 未捕获的 TypeError:无法读取 null 的属性“getContext”
- reactjs - 同时使用样式化组件和 css 模块是一种做法吗?
- r - 在 plotly 中与 add_trace() 一起使用时,悬停模板显示数据两次
- html - 如何移动 p 标签?
- asp.net - 导出脚手架工具路径的动作是什么意思?
- javascript - 如何处理非活动用户并在反应 JavaScript 中注销?