2016-07-14 9 views
0
Validierung

Ich habe Perl-Skript, das die SVN Log überprüft und extrahieren die Nachricht begehen und validieren für das Nachrichtenformat begehen wie folgt:Perl Muster Ausgabe passend während

TAL: 12345, JIRA: QC-11115, BBC: ACR-12334 
Program: Some definite name 
Reviewer: committer name or his employee ID (5digits) 
Description: Some relevant description 

ODER

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 

Kommentare sind extrahiert und in einem Array gespeichert - @my_comments und abgerufen wie unten

 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; 
..... 

Auch EJR

print "ARRAY COMMENTS:$my_comments[$j]\n"; 

gab eine Ausgabe wie unten als

erwartet
TAL: 12345, JIRA: QC-11115, BBC: ACR-12334 
Program: Some definite name 
Reviewer: committer name or his employee ID (5digits) 
Description: Some relevant description 

Also, ich vermute Problem mit den passenden meinen Mustern. Irgendwelche Vorschläge bitte.

Antwort

1

Ihr Program:\s{0,2}[A-Za-z]{3,20} Muster erlaubt keine Leerzeichen, während Ihr Eingabe Beispiel Program: Some definite name einige hat. Hinzufügen von Leerzeichen in das Muster sollte das Problem lösen: https://regex101.com/r/iA8kE9/1.

+0

Vielen Dank, dass das Problem behoben wurde. –