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

技术需求:实现特殊字符归属前缀词的字符串分割

字符串分割解决方案:特殊字符归属前一个单词

可以使用正则表达式的findall方法实现需求,核心思路是匹配「字母数字序列+可选的特殊字符序列」作为单个元素,自动忽略空格分隔符。

代码实现(Python)

import re

def split_with_special_chars(s):
    # 匹配字母数字开头,后续跟任意个非字母数字、非空格的特殊字符
    # 若不需要匹配下划线,可将\w替换为[a-zA-Z0-9]
    pattern = r'\w+[^\w\s]*'
    return re.findall(pattern, s)

测试验证

运行以下测试代码:

# 测试示例1
print(split_with_special_chars('Company Name: Back in future'))
# 输出: ['Company', 'Name:', 'Back', 'in', 'future']

# 测试示例2
print(split_with_special_chars('SCALC:WY58'))
# 输出: ['SCALC:', 'WY58']

# 测试示例3
print(split_with_special_chars('Our carrier.: LTC'))
# 输出: ['Our', 'carrier.:', 'LTC']

# 测试示例4
print(split_with_special_chars('Lading# 1'))
# 输出: ['Lading#', '1']

# 测试示例5
print(split_with_special_chars('Invoice of lading-91258963'))
# 输出: ['Invoice', 'of', 'lading-', '91258963']

正则说明

  • \w+:匹配1个及以上字母、数字或下划线(若仅需字母数字,替换为[a-zA-Z0-9]+)
  • [^\w\s]*:匹配0个及以上「非字母数字、非空格」的特殊字符,确保这些字符被归属到前一个字母数字序列所在的元素中
  • findall方法会自动遍历字符串,提取所有符合规则的片段,正好对应分割后的目标列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:43:20