我有perl脚本,它检查SVN日志,提取提交消息并验证提交消息格式,如下所示:
TAL: 12345, JIRA: QC-11115, BBC: ACR-12334
Program: Some definite name
Reviewer: committer name or his employee ID (5digits)
Description: Some relevant description或
JIRA: ABC-123
Program: Some definite name
Reviewer: committer name or his employee ID (5digits)
Description: Some relevant description:
- Some more relevant description
- Much relevant description注释被提取并存储在数组- @my_comments中,并按如下方式访问
if (($my_comments[$j] =~/(((JIRA|TAL|BBC):\s{0,2}[A-Za-z0-9-]{4,15},{0,1}\s{0,2}){1,5})\nProgram:\s{0,2}[A-Za-z]{3,20}\nReviewer:\s{0,2}[A-Za-z0-9\s]{4,40}\nDescription:\s{0,2}[A-Za-z0-9\s].*/))
{ print "GOOD";
$compliance = "YES";
}
else
{ print "FAILED";
$compliance = "NO";
}
push @my_Compliance,$compliance;
.....此外,FYR
print "ARRAY COMMENTS:$my_comments[$j]\n";按预期提供的产出如下
TAL: 12345, JIRA: QC-11115, BBC: ACR-12334
Program: Some definite name
Reviewer: committer name or his employee ID (5digits)
Description: Some relevant description 所以,我怀疑问题在于我的模式匹配。请给我任何建议。
发布于 2016-07-14 11:08:29
您的Program:\s{0,2}[A-Za-z]{3,20}模式不允许空格,而输入示例Program: Some definite name有一些空格。在模式中添加空格可以解决这个问题:https://regex101.com/r/iA8kE9/1。
https://stackoverflow.com/questions/38372158
复制相似问题