PHP 패턴(여러 소괄호 경우) 결과값 차이 채택완료
<?php
preg_match('/(Hom)(zzang)(.com)/', 'Homzzang.com', $matches);
print_r($matches);
// 출력값: Array ( [0] => Homzzang.com [1] => Hom [2] => zzang [3] => .com )
preg_match('/(Hom)(zzang)(com)/', 'Homzzang.com', $matches);
print_r($matches);
// 출력값: Array ( )
?>
위 2개의 정규표현식 차이는 오직 com 앞에 점이 있냐 없냐 차이뿐인데,
출력값이 왜 이런 차이를 보이는 걸까요?
답변 1개
채택된 답변
+20 포인트
3년 전
'/(Hom)(zzang)(com)/' <==문자열이 이 패턴과 일치하지않으니 값이 없는 것이죠
(zzang)과 (com) 사이에 어떤 문자도 없다는 뜻이니까요
'Homzzangcom' <== 위 패턴은 이 문자열과 일치하는 패턴입니다
이렇게도 해보세요
'/(Hom)(zzang).*(com)/', 'Homzzang.asdfgcom'
'/(Hom)(zzang)(.*com)/', 'Homzzangcom'
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인