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

如何按字符长度分割字符串,且不包含分隔符后的后续内容?

按长度分割字符串且不截断分隔符后的内容

要实现在指定字符长度上限内,只保留分隔符(如逗号)前的完整内容,避免截断后半段的需求,可以通过正则表达式的反向断言来实现。

解决方案代码

import re

raw_string = 'ABCD,DEFG,HIJK'
# 正则解释:匹配开头最多10个字符,且结尾不能是分隔符后的半截内容
split_result = re.findall(r'^.{1,10}(?<!,.)', raw_string)
print(split_result)  # 输出: ['ABCD,DEFG']

正则表达式原理

  • ^:匹配字符串开头,确保只从起始位置开始匹配
  • .{1,10}:匹配1到10个任意字符,满足长度限制
  • (?<!,.):反向否定断言,确保匹配的结尾不是紧跟在逗号之后的字符——也就是说,如果匹配到的最后一个字符是逗号后面的内容(比如示例中的H),这部分会被排除,自动回退到上一个逗号的位置,保证结果是完整的分段内容。

如果需要支持其他分隔符(比如分号、竖线),只需要把断言里的逗号换成对应的字符或字符组即可,例如支持逗号和分号的写法:(?<!([;,]).)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:33:46