如何编写query提取指定字符串不同位置破折号之间的目标值
字符串指定区间内容提取方案
目标处理字符串:"aaaa-h0321456-f7894-1599-5"
方案1:字符串分割法(逻辑最简单,性能最优)
适用场景:字符串固定以-作为分隔符,无特殊转义规则
- 实现逻辑:将字符串按
-切割为列表,列表下标从0开始计数,第一个和第二个破折号之间的内容对应下标1的元素,第二个和第三个破折号之间的内容对应下标2的元素 - Python 示例代码:
raw_str = "aaaa-h0321456-f7894-1599-5" split_list = raw_str.split("-") # 提取h0321456 res1 = split_list[1] # 提取f7894 res2 = split_list[2]
输出结果:res1 = h0321456,res2 = f7894
方案2:正则匹配法(适配灵活的规则调整)
适用场景:字符串格式存在波动,需要更灵活的匹配规则
- 匹配第一个和第二个破折号之间内容的正则:
^[^-]+-([^-]+)-,提取捕获组1即可 - 匹配第二个和第三个破折号之间内容的正则:
^[^-]+-[^-]+-([^-]+)-,提取捕获组1即可 - Python 示例代码:
import re raw_str = "aaaa-h0321456-f7894-1599-5" # 提取h0321456 res1 = re.match(r"^[^-]+-([^-]+)-", raw_str).group(1) # 提取f7894 res2 = re.match(r"^[^-]+-[^-]+-([^-]+)-", raw_str).group(1)
输出结果:res1 = h0321456,res2 = f7894
内容的提问来源于stack exchange,提问作者teamplayer
相关产品推荐
相关产品推荐

