正则表达式-分组

小明 2025-05-06 17:40:50 6

1、oracle-���则表达式:将'09/29/2008'  用正则表达式转换成2008-09-29

select regexp_replace('09/29/2008', '^([0-9]{2})/([0-9]{2})/([0-9]{4})$', '\3-\1-\2')  replace 

from dual;

解析:regexp_replace-替换,

第一个参数:需要进行处理的字符串

第二个参数:需要进行处理的字符串的所匹配的正则表达式

第三个参数:需要替换的的表达式

09/29/2008  该字符串由3部分组成。

数字(2位)/数字(2位)/数字(4位) -正则表达式匹配:^代表以什么开头 $以什么结尾

每一组以括号括起来,代表的是一组

^([0-9]{2}) / ([0-9]{2}) / ([0-9]{4})$

第一组后续会用\1表示    / 第二组,以\2 表示 /第三组 以\3表示

替换的表达式:\3-\1-\2 :表示第3组的表达式-第1组表达式-第2组表达式

2、文件匹配

用一个表达式匹配以下所有文件

经分析PM_是固定的,有SMF,AMF,UPF三个匹配项

SMFFUNCTION,AMFFUNCTION,UPFFUNCTION 有三个匹配项,

每个下面又有2个匹配项。

SMF|AMF|UPF :|表示或者的关系

(SMF|AMF|UPF):代表一组,SMF或者AMF或者AMF

EastCom_75101_PM_(SMF|AMF|UPF)_((SMFFUNCTION-(DNN|NS))|(AMFFUNCTION-(NS|TA))|(UPFFUNCTION-(NS|DNN)))_.*\.csv

PM_SMF_SMFFUNCTION-DNN_15M_20230719110000_20230719112125420.csv

PM_SMF_SMFFUNCTION-NS_15M_20230719110000_20230719112125420.csv

PM_AMF_AMFFUNCTION-NS_15M_20230719110000_20230719112050487.csv

PM_AMF_AMFFUNCTION-TA_15M_20230719110000_20230719112129903.csv

PM_UPF_UPFFUNCTION-NS_15M_20230719110000_20230719112125740.csv

PM_UPF_UPFFUNCTION-DNN_15M_20230719110000_20230719112350088.csv

The End
微信