如何用PySpark的regexp_extract函数提取questionB的响应内容?
提取description字段中questionB对应的内容
可以使用regexp_extract函数结合正则表达式实现需求,核心逻辑是精准匹配questionB : 的前缀,然后提取其后直到下一个question开头或字符串结尾的内容。
具体函数写法(以Hive/Spark SQL为例)
regexp_extract(description, 'questionB : (.*?)(?= questionC|$)', 1)
正则表达式解析
questionB ::精准匹配目标前缀,确保定位到questionB的内容起始位置(.*?):非贪婪模式捕获任意字符,避免过度匹配后续无关内容(?= questionC|$):正向预查终止条件,匹配到questionC(下一个问题的开头)或者字符串结尾时停止捕获- 最后一个参数
1:指定提取正则表达式中第一个捕获组(即括号内的目标内容)
效果验证
针对你的示例数据:
- 第一条记录提取结果:
indent code by 4 spaces - 第二条记录提取结果:
create code fences
内容的提问来源于stack exchange,提问作者Nabs335
相关产品推荐
相关产品推荐

