You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中使用正则提取字符串Becv后数字串的方法咨询

PySpark提取Becv后可变数字串的正则方案

需求说明

从类似rasm_4_Becv0_0_1234_rasm_3exm的字符串中,提取Becv之后由数字和下划线组成的可变序列(示例中为0_0_1234)。

正则表达式写法

核心正则为:Becv([0-9_]+)

  • Becv:精准匹配前缀标识
  • ([0-9_]+):捕获组,匹配一个或多个数字/下划线,直到遇到第一个非数字、非下划线的字符(刚好对应目标可变串的边界)

如果需要更严格限定目标串后接下划线(避免极端场景的误匹配),可以用正向预查优化:Becv([0-9_]+)(?=_)

PySpark代码实现

使用Spark内置的regexp_extract函数完成提取,示例代码如下:

from pyspark.sql import functions as F

# 假设你的DataFrame名为df,目标字符串列名为raw_str
df = df.withColumn(
    "target_num_str",
    F.regexp_extract("raw_str", r"Becv([0-9_]+)", 1)
)
  • regexp_extract第三个参数1表示提取第一个捕获组的内容(也就是我们需要的数字下划线串)
  • 前缀r表示原生字符串,避免转义字符干扰

内容的提问来源于stack exchange,提问作者saloni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 16:29:53