修改Java正则表达式

马可斯

我正在使用以下正则表达式替换文件名

Regex -> .*\/([A-Z0-9_]{1,9})_(O).*.cmd
Substitution -> $1

文件名如下:

File Name                         | Substituted Name
---------------------------------- ------------------
/V3/OGM_REC_Offline_Level0_4D.cmd  OGM_REC
/V2/PIE_PROD_Online_Level1_6D.cmd  PIE_PROD
/V3/BR2_OnDemand.cmd               BR2
/opt/STING_Online_Inc0_1W.cmd      STING

然后文件改变了,我修改了正则表达式

Regex -> .*\/([A-Z0-9_]{1,9})(_O|Full).*.cmd
Substitution -> $1

其他新文件名

File Name             | Substituted Name
---------------------- ------------------
/opt/RSU10Full.cmd     RSU10
/V4/REZ40_1Full.cmd    REZ40_1

现在,似乎有新文件正在使用以下名称格式进行更新

/app/OMGIT_FullOnDemand_4W.cmd
/admin/FOC_STG_Full_6D.cmd

我再次修改了正则表达式,但是没有成功

Regex -> .*\/([A-Z0-9_]{1,9})(_O|Full|_Full).*.cmd
Substitution -> $1
维克多·斯特里比尤(WiktorStribiżew)

我建议使用带有延迟限制量词{1,9}?和可选的版本_

.*/([A-Z0-9_]{1,9}?)(_O|_?Full).*[.]cmd

这样,我们将尽可能少的字符匹配[A-Z0-9_]{1,9}?以返回有效的捕获子文本,并且_?Fullpart可以包含可选的下划线。

正则表达式演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章