PHP 패턴(여러 소괄호 경우) 결과값 차이

PHP 패턴(여러 소괄호 경우) 결과값 차이

QA

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

'/(Hom)(zzang)(com)/' <==문자열이 이 패턴과 일치하지않으니 값이 없는 것이죠

(zzang)과 (com) 사이에 어떤 문자도 없다는 뜻이니까요

 'Homzzangcom' <== 위 패턴은 이 문자열과 일치하는 패턴입니다

이렇게도 해보세요

'/(Hom)(zzang).*(com)/',  'Homzzang.asdfgcom'

'/(Hom)(zzang)(.*com)/',  'Homzzangcom'

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT