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

SQL Server子字符串提取:特定格式文本的目标内容提取需求

提取指定子串的解决方案

嘿,我来帮你搞定这个字符串提取需求!从你给出的例子来看,你需要从格式类似前缀.目标内容_后缀或者前缀.目标内容的字符串里,精准提取出中间的目标部分对吧?

核心思路

观察这些字符串的结构:

  • 所有目标内容都在点号(.)之后
  • 目标内容的结束位置要么是第一个下划线(_),要么是字符串的末尾

基于这个规律,我们可以用正则表达式来匹配符合要求的内容,效率很高。

正则表达式方案

使用这个正则表达式就能精准匹配:

(?<=\.)[A-Za-z]+(?=_|$)

拆解一下各个部分的作用:

  • (?<=\.):正向预查,确保匹配的内容前面紧跟一个点号,避免误匹配前缀里的内容
  • [A-Za-z]+:匹配连续的字母(如果你的目标内容可能包含数字,可以改成[A-Za-z0-9]+)
  • (?=_|$):正向预查,确保匹配的内容后面要么是下划线,要么是字符串结尾,刚好截断到目标内容的末尾

代码示例(Python)

import re

# 测试的字符串列表
input_strings = ["YY_12.Yellow", "ABC_WSA.Thisone_A", "SS_4MON.DHHE_A_A"]
# 定义正则模式
extract_pattern = r'(?<=\.)[A-Za-z]+(?=_|$)'

# 遍历提取每个字符串的目标内容
for s in input_strings:
    result = re.search(extract_pattern, s)
    if result:
        print(result.group())

运行这段代码会输出:

Yellow
Thisone
DHHE

代码示例(JavaScript)

如果你用JavaScript处理,代码也很简单:

const inputStrings = ["YY_12.Yellow", "ABC_WSA.Thisone_A", "SS_4MON.DHHE_A_A"];
const extractPattern = /(?<=\.)[A-Za-z]+(?=_|$)/;

inputStrings.forEach(str => {
    const match = str.match(extractPattern);
    if (match) {
        console.log(match[0]);
    }
});

这个方案适配你给出的所有测试用例,而且如果后续有类似格式的字符串,只要结构符合就能正常提取~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:48:39