技术需求:实现特殊字符归属前缀词的字符串分割
字符串分割解决方案:特殊字符归属前一个单词
可以使用正则表达式的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
相关产品推荐
相关产品推荐

