SQL Server:提取字符串中'XXXX_'之后的子串
嘿,这个需求很简单,我给你几个实用的实现方法,根据你实际要的结果选就行:
先明确两种可能的需求(对应你例子里的标注)
你提到要提取XXXX_之后的子串,例子里标了RHL,这里分两种常见场景:
- 场景1:获取
XXXX_之后所有内容(比如例子里的RHL_PQR) - 场景2:只获取
XXXX_之后第一个下划线前的部分(也就是你例子里的RHL)
下面以Python为例(最常用的处理字符串的语言之一),给出具体实现:
方法1:直接字符串分割(简单无脑,适合固定格式)
这种方法不需要额外依赖,直接用字符串内置方法就能搞定:
场景1:获取全部后续内容
s = '1234_XXXX_RHL_PQR' # 按'XXXX_'分割字符串,取分割后的第二部分 result = s.split('XXXX_')[1] print(result) # 输出:RHL_PQR
因为你说字符串里必然包含XXXX_,所以分割后肯定有两个部分,直接取索引[1]就好。
场景2:获取第一个下划线前的部分
s = '1234_XXXX_RHL_PQR' # 先拿到XXXX_之后的全部内容,再按下划线分割取第一个元素 result = s.split('XXXX_')[1].split('_')[0] print(result) # 输出:RHL
方法2:正则表达式(更灵活,适合复杂/可变格式)
如果之后你的字符串格式可能有变化,正则表达式会更通用:
场景1:获取全部后续内容
import re s = '1234_XXXX_RHL_PQR' # 匹配XXXX_后面的所有内容 match = re.search(r'XXXX_(.*)', s) result = match.group(1) print(result) # 输出:RHL_PQR
这里(.*)表示捕获XXXX_之后的任意字符,直到字符串结尾。
场景2:获取第一个下划线前的部分
import re s = '1234_XXXX_RHL_PQR' # 匹配XXXX_后面直到第一个下划线的内容 match = re.search(r'XXXX_([^_]+)', s) result = match.group(1) print(result) # 输出:RHL
[^_]+表示匹配非下划线的字符,正好停在第一个下划线前,完美拿到RHL。
这些方法都很靠谱,因为你保证了字符串里一定有XXXX,所以不用处理匹配失败的情况,直接用就行~
内容的提问来源于stack exchange,提问作者Rahul Sevani
相关产品推荐
相关产品推荐

