x = y 형식의 문자열과 일치하는 정규식이 있습니다. 즉 이름이 가치를 부여했습니다. 값은 선택적으로 인용하고 모두 이름과 값은 내 정규식 정규 표현식 및 그룹화
\w+=\w+|"\w+"|'\w+'
한 줄에 이러한 과제의 다수가있을 수 있습니다
+ W \에 적합하지만, 여기에 내가 문제로 실행 할 수 있습니다. 어떤 이유로이 정규식을 (? :)에 묶을 때 일치하지 않습니다. 출력은 이해가 안
ok 1
PREMATCH xy=
MATCH "abc"
POSTMATCH
not ok 2
# Failed test at ./test.pl line 20.
1..2
# Looks like you failed 1 test of 2.
왜 첫 경기와 두 번째가 아닌
use Test::More;
my $re1 = qr/^\w+=\w+|"\w+"|'\w+'$/p;
my $re2 = qr/^(?:\w+=\w+|"\w+"|'\w+')$/p;
ok('xy="abc"' =~ $re1);
say "PREMATCH ${^PREMATCH}";
say "MATCH ${^MATCH}";
say "POSTMATCH ${^POSTMATCH}";
ok('xy="abc"' =~ $re2);
done_testing;
아래의 테스트 케이스를 참조하십시오. 그리고 저는 왜 첫 번째 것이 등호 뒤에있는 부분과 만 일치하는지 이해하지 못합니다. 그것의 끝에서 발생하는 단어 또는 단어 주위에 따옴표 주변에 공백 또는 인용 부호 다음에 ^
일치하는 경우 귀하의
^\w+=\w+|"\w+"|'\w+'$
당신은'xy'와' "ABC" '모두 일치하려고 :
두 번째는 교대를 클러스터링하는 것입니다? – Degustaf