Python如何在指定字符前分割字符串并生成列表
Python 指定字符前拆分字符串实现方案
以下所有方案基于示例输入字符串 s = "10001001010Q1002000293Q100292Q",目标为在每个Q前拆分,拆分后每段默认保留末尾的Q,可根据需求调整逻辑。
实现方法
- 方法1:正则表达式拆分(最灵活)
利用正则的正向肯定后向断言匹配Q前面的位置直接拆分,仅需一行核心逻辑,支持任意复杂规则的拆分场景:
import re s = "10001001010Q1002000293Q100292Q" # (?<=Q) 表示匹配Q前面的空位置,拆分后过滤空字符串即可 result = [item for item in re.split(r'(?<=Q)', s) if item] print(result)
输出结果:['10001001010Q', '1002000293Q', '100292Q']
如果不需要保留片段末尾的Q,将正则规则改为r'Q'即可。
- 方法2:原生字符串方法实现(无需引入第三方库)
先按Q拆分字符串,再给非空片段补回末尾的Q,逻辑简单易读:
s = "10001001010Q1002000293Q100292Q" split_parts = s.split('Q') result = [part + 'Q' for part in split_parts if part] print(result)
输出结果和方法1完全一致。
输出为新字符串
如果不需要列表格式,需要拼接为完整新字符串,直接使用join方法即可,示例为用换行符分隔每个片段:
new_str = '\n'.join(result) print(new_str)
内容的提问来源于stack exchange,提问作者Nikkolas1985
相关产品推荐
相关产品推荐

