场景:我需要检查文件路径是否包含特定文件夹。如果是,则不输出任何内容,否则显示错误消息。
如何使用perl正则表达式(input/regex/merge/flags
)执行此条件输出?
到目前为止我得到了什么:
example-path:bin/user/projects/prjx/src/lib/detail/file.txt
TM_FILEPATH/(src)?(?(1)true|false)/$1/g
但是,这是条件匹配,而不是条件输出
答案 0 :(得分:1)
假设您要检查的文件夹是src
:
if ($filepath !~ m:(^|/)src(/|$):) {
print STDERR "Error message\n";
}
答案 1 :(得分:1)
${TM_FILEPATH/(.*\/(src)?\/.*)+|(.+)/?1:#true:#false/i}
${
TM_FILEPATH // variable input
/ // delimiter
(.*\/(src)\/.*) // find either a folder /src/
+ // at least once
| // or
(.+) // consume the whole input
/ // delimiter
?1: // when match 1 is set
#true // print this
:#false // (optional) else print this
/ // delimiter
i // flags
}
所以结构基本上是这样的:
${variable/(regex-pattern)+|(.+)/?1:yes-output:no-output/flags}