나는 힘든 시간 반드시이 펄의 QR을 사용하는 경우 {} 내가 일반적으로 탈출 문자의 무수를 포함하는 멀티 라인 텍스트 미리 컴파일 된 정규식을 만들려고 해요Perl 미리 컴파일 된 정규식에서 어떤 문자를 벗어나야합니까?
를 구성 이스케이프 어떤 문자를 결정하는 데 (# *.> : []) 또한 미리 컴파일 된 다른 정규 표현식을 포함합니다. 또한 테스트 목적으로 최대한 엄격하게 일치시켜야합니다.
my $output = q{# using defaults found in .config
*
*
Options:
1. opt1
> 2. opt2
choice[1-2?]: };
my $sc = qr{(>|\s)}smx;
my $re = qr{# using defaults found in .config
*
*
Options:
$sc 1. opt1
$sc 2. opt2
choice[1-2?]: }mx;
if ($output =~ $re) {
print "OK!\n";
}
else {
print "D'oh!\n";
}
오류 :
(오 D' 출력) 실패한 경기에서 별표 결과를 탈출하려고Quantifier follows nothing in regex; marked by <-- HERE in m/# using defaults found in .config
* <-- HERE
*
Options:
(?msx-i:(>|\s)) 1. opt1
(?msx-i:(>|\s)) 2. opt2
choice[1-2?]:/at ./so.pl line 14.
. 성가신 다른 문자를 이스케이프하려고해도 일치하지 않습니다. 탈출 할 수있는 여러 가지 조합을 계속 시도 할 수 있지만 여기에는 많은 변형이 있으며 누군가가 통찰력을 제공 할 수 있기를 희망합니다.
아아! 내 자신의 'x'와 'x'에 대한 이해는 현실과 반대였다. 그러므로 $ re에서 's'가 누락되었습니다. 하지만 네, 여기 PbP도 비난합니다. :) –
책은 옵션이 무엇을하는지 설명하고 사용하는 이유에 대해 설명합니다. 책을 비난 할 수는 없습니다. :) –
나는 책을 비난 할 수있다. "항상/x 플래그 사용"(p 236) 및 "항상/m 플래그 사용"(p 237)이라고 나와 있습니다."항상"권고안은 잘못되었습니다. –