小编64H*_*4Hz的帖子

RegExp - Bash 中的可选捕获组?

目前正在研究一些 RegExp 来解析输入文件以获得正确的内容。我正在使用下面的 RegExp 来解析一些输入:

cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(?:-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD))-[a-z]
Run Code Online (Sandbox Code Playgroud)

输入它应该匹配:

cell-80-sandp-sit-a
Run Code Online (Sandbox Code Playgroud)

或者匹配这个:

cell-80-sandp-a
Run Code Online (Sandbox Code Playgroud)

-sit输入的部分应该是一个可选的捕获组,据我所知,这意味着如果没有找到这个捕获组,RegExp 将继续成功,或者如果找到它也会成功完成。

对于这种情况,我将在 if 语句中使用它:

if [[ "$Input" =~ $RegExp ]];
    then
        #stuff
fi
Run Code Online (Sandbox Code Playgroud)

谁能指出以上有什么问题?我一直在regex101.com用来测试它。

bash text-processing regular-expression test

2
推荐指数
1
解决办法
4553
查看次数

标签 统计

bash ×1

regular-expression ×1

test ×1

text-processing ×1