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

如何在SQL中提取第二个冒号(:)之前的文本?

提取第二个冒号之前的字符串的实现方法

给定原始字段内容:

ss pullover jaq:rwbwht:40 
ribbed cttn 5608:navy:10.5 
shorts:black:xl
s:pigment wash mushroom:l  
t tote bag:mushroom:1size

需要提取第二个:之前的内容,得到目标结果:

ss pullover jaq:rwbwht
ribbed cttn 5608:navy   
shorts:black  
s:pigment wash mushroom  
t tote bag:mushroom

以下是几种不同场景下的实现方案:

Excel/Google Sheets 实现

使用LEFT+FIND组合函数,定位第二个冒号的位置后截取内容:

=LEFT(A1, FIND(":", A1, FIND(":", A1)+1)-1)
  • 内层FIND(":", A1)找到第一个冒号的位置,加1后作为外层FIND的起始搜索点,精准定位第二个冒号
  • LEFT从字符串开头截取到第二个冒号的前一位,得到目标内容

正则表达式实现(通用工具/编程语言)

文本编辑器(如Notepad++)替换操作

  • 查找目标:^(.*?:.*?):.*$
  • 替换为:$1
  • 勾选「正则表达式」选项,执行全部替换即可批量处理每行内容

Python 代码实现

import re

raw_text = """ss pullover jaq:rwbwht:40 
ribbed cttn 5608:navy:10.5 
shorts:black:xl
s:pigment wash mushroom:l  
t tote bag:mushroom:1size"""

processed_lines = [re.sub(r'(.*?:.*?):.*', r'\1', line) for line in raw_text.split('\n')]
print('\n'.join(processed_lines))

命令行(awk)实现

通过指定冒号为分隔符,输出前两个字段并拼接:

awk -F: '{print $1":"$2}' your_file.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 02:45:55