如何提取两个指定字符(如=、/、+等)之间的目标数据
实现方法
核心匹配规则
所有实现方案都基于正则匹配逻辑,匹配模式为 =([^/]+)/,捕获组1返回的内容就是你需要的目标值,规则逻辑如下:
- 先匹配字符
= - 捕获所有非
/的连续字符,直到遇到下一个/为止 - 匹配结尾的
/作为结束标识
不同环境的实现示例
1. SQL 环境(fle字段存储在关系型数据库中)
不同数据库的正则提取语法略有差异:
- MySQL/Oracle 实现
SELECT REGEXP_SUBSTR(fle, '=([^/]+)/', 1, 1, NULL, 1) AS target FROM your_table;
- PostgreSQL 实现
SELECT substring(fle FROM '=([^/]+)/') AS target FROM your_table;
2. Python 环境
import re path = "/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012" match = re.search(r'=([^/]+)/', path) if match: target = match.group(1) # 输出结果为 hhh
3. Shell 环境
- grep 实现
echo "/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012" | grep -oP '=\K[^/]+(?=/)'
- awk 实现
echo "/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012" | awk -F'[=/]' '{print $2}'
4. JavaScript 环境
const path = "/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012"; const match = path.match(/=([^/]+)\//); if (match) { const target = match[1]; // 输出结果为 hhh }
如果你的路径中存在多个符合=xxx/格式的片段,只需要调整正则匹配的次数参数,即可提取对应位置的目标值。
内容的提问来源于stack exchange,提问作者umair chib
相关产品推荐
相关产品推荐

