답변:
또 다른 가능성은 Perl이 유명한 정규 표현식 을 사용 하는 것입니다.
if ($mystring =~ /s1\.domain\.com/) {
print qq("$mystring" contains "s1.domain.com"\n);
}
백 슬래시는 .
모든 문자와 일치 할 수 있으므로 필요 합니다. \Q
및 \E
연산자 를 사용하여이 문제를 해결할 수 있습니다 .
my $substring = "s1.domain.com";
if ($mystring =~ /\Q$substring\E/) {
print qq("$mystring" contains "$substring"\n);
}
또는 eugene y가 언급 한대로 수행 하고 index 함수를 사용할 수 있습니다. 경고 : Index는 또는 -1
대신 일치하는 항목을 찾을 수 없을 때 a를 반환합니다 .undef
0
따라서 이것은 오류입니다.
my $substring = "s1.domain.com";
if (not index($mystring, $substr)) {
print qq("$mystring" doesn't contains "$substring"\n";
}
이 s1.domain.com
문자열의 시작 부분에 있으면 잘못된 것 입니다. 나는 개인적으로 이것에 두 번 이상 불에 탔다.
index()
간단한 경우 정규식보다 빠르다고 생각 합니까?
=~
, index()
, ~~
및 match::simple
모든 비트 듯 awk
... -ward을 : - \
domain.com
일치 시킬 수 subdomain.domain.com
없습니까?
:
.