누구나이 정규식으로 나를 도와 줄 수 있습니까? 끝에 "생성 된"문자열을 포함하지 않는 행과 일치하는 표현식이 필요합니다. 이 스크립트는 일부 소스 코드에서 제목을 읽는 데 사용됩니다. Perl 정규식 정규식 일치 문자열 제외, 일치하는 문자열이 없음
$string = "* JAN-01-2001 bugsbunny 1234 Created Module";
#$string = "* DEC-12-2012 bugsbunny 5678 Modified Module";
if($string =~ /^\*\s+(\w\w\w-\d\d-\d\d\d\d)\s+(\w+)\s+(\d+)\s+(?!Created)/){
print "$1\n$2\n$3\n$4\n";
} else {
print "no match\n";
}
처음 $ 문자열의 정의를 사용하여
, 나는 그것의 끝에서 "만든"단어를 가지고 있기 때문에 실패 할 경기를해야합니다. 두 번째 $ string 정의를 사용할 때 전달해야하며 날짜 ($ 1), 사용자 ($ 2), 변경 번호 ($ 3) 및 설명 ($ 4)을 가져와야합니다.위의 표현식이 작동하지 않습니다. 어떤 조언을 해주시겠습니까?
이 또한 필요'*'Created''후.. 실제로 'end'의 OP 정의는 잘못되었습니다. 그는 아마'Created'가 문자열의 마지막 부분에 있어서는 안된다고 원합니다. –
@RohitJain : 아니요. '만든'뒤에 '. *'는 필요하지 않습니다. 미리보기 일치는 문자열 끝에 고정되어 있지 않습니다. 그는 "최종적으로 창조 된"을 포함하지 않고 "창조 된"으로 끝나지 않는다고 썼다. –
@TimPietzcker .. 아! 나는 그것을 어떻게 놓쳤는가? –