gpt4 book ai didi

regex - 如何修剪子字符串与正则表达式匹配的结果?

转载 作者:行者123 更新时间:2023-11-29 14:24:21 24 4
gpt4 key购买 nike

我在postgresql中有这组数据:

en_MY_V2_CID_MY_SEM_1_1_0_0
en_MY_V2_CID_MY_SEM_2_101_1703_0
en_MY_V2_CID_MY_SEM_2_101_1724_0
en_MY_CID_MY_DIS_1_100_1705_0068
en_MY_CID_MY_DIS_1_100_1705_0068

我想像这样提取子字符串:

en_MY_V2_CID_MY_SEM_1
en_MY_V2_CID_MY_SEM_2
en_MY_V2_CID_MY_SEM_2
en_MY_CID_MY_DIS_1
en_MY_CID_MY_DIS_1

问题是,左侧结构不是常量,所以我无法使用正则表达式来掌握它们。相反,右侧结构常量,格式为_numbers_numbers_numbers_numbers。所以我尝试在 postgresql 中使用这个查询:

select substring(name from '_\d+_\d+_\d+$') from logs;

并得到:

1_0_0
101_1703_0
101_1724_0
100_1705_0068
1705_0068

所以问题是,我如何取反或修剪前面的子字符串以便得到我的结果?

最佳答案

使用 rexep_replace

select regexp_replace(name,E'\(\\w\)_\\d+_\\d+_\\d+$',E'\\1') from logs;

关于regex - 如何修剪子字符串与正则表达式匹配的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5647058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com