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

使用Python正则拆分E100N05为['E100','N05']应选择什么模式

正则拆分方向字母+数字组合字符串的实现方案

问题原因

你原来的写法直接把N/E/S/W作为分隔符匹配,split操作会直接删除匹配到的分隔符字符,所以才会得到丢失方向字母的结果,同时开头的E被作为分隔符切掉后会产生空字符串元素。

实现方案

方案1:使用零宽正向断言拆分

用零宽正向断言匹配方向字母的前侧位置,拆分时不会消耗方向字母字符,只需过滤掉开头的空元素即可:

import re
res = [i for i in re.split(r'(?=[NESW])', 'E100N05') if i]
print(res)
# 输出:['E100', 'N05']

方案2:直接匹配提取目标片段(更推荐)

直接用re.findall匹配所有符合方向字母+数字规则的片段,自动过滤无效空元素,容错性更高:

import re
res = re.findall(r'[NESW]\d+', 'E100N05')
print(res)
# 输出:['E100', 'N05']

两种方案都支持数字位数不固定的场景,不管每个方向后面跟几位数字都能正常处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:18:04