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

如何提取字符串中指定子串,ON之前的2个相邻子字符串

需求实现方法

方法一:正则表达式匹配

直接通过正则的正向预查规则定位,ON的位置,同时捕获前方两个逗号分隔的子串,所用正则为([^,]+,[^,]+)(?=,ON)。
参考Python实现:

import re
origin_str = "J0C,DRUMMONDVILLE,QC,CDP,K2E,NEPEAN,ON,LCD,MERIVALE,K9A,COBOURG,ON,LCD,MAIN"
match_list = re.findall(r'([^,]+,[^,]+)(?=,ON)', origin_str)
result = ','.join([f"{item},ON" for item in match_list])
print(result)

运行后直接输出K2E,NEPEAN,ON,K9A,COBOURG,ON。

方法二:分割列表遍历处理

先把字符串按逗号拆分为子串列表,再遍历找值为ON的元素,取其前两个元素和自身拼接即可。
参考Python实现:

origin_str = "J0C,DRUMMONDVILLE,QC,CDP,K2E,NEPEAN,ON,LCD,MERIVALE,K9A,COBOURG,ON,LCD,MAIN"
str_list = origin_str.split(',')
result_list = []
for idx in range(2, len(str_list)):
    if str_list[idx] == 'ON':
        result_list.extend([str_list[idx-2], str_list[idx-1], str_list[idx]])
result = ','.join(result_list)
print(result)

两种方案均可实现需求,正则写法更简洁,列表遍历逻辑更直观,方便后续调整提取规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:57:01