目前正在研究一些 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用来测试它。