정규식 관련..

정규식 관련..

QA

정규식 관련..

본문

<? 
$subject = "aa1bb1cc1"; 
$pattern = "/([a-zA-Z]+1)+/"; 
preg_match($pattern, $subject, $matches);  
echo $matches[1]; 
?> 

하면 cc1이 출력되고, $pattern을 뒤에있는 +만 지워서 "/([a-zA-Z]+1)/"; 로 바꿔보면 aa1 가 출력되는데 
그 이유를 모르겠어요. + 하나 붙었다고 왜 aa1와 bb1은 제외되고 cc1만 포함되나요?

이 질문에 댓글 쓰기 :

답변 1

/([a-zA-Z]+1)+/ <--이건 ([a-zA-Z]+1) 이런 패턴이 1개이상 나오는 것을 찾아서
 ([a-zA-Z]+1)이런 패턴을 추출 정도로 해석되겠네요
 ([a-zA-Z]+1) 이것은 aa1bb1이 포함될 수가 없습니다(문자열 중간에 숫자가 들어가는 패턴이어야 할테니까요)
$pattern = "/([a-zA-Z0-9]+1)+/"; 이렇게 되면 가운데 숫자가 있는 것도 찾겠죠
$pattern = "/(([a-zA-Z]+1)+)/"; 이렇게 되면 $matches[1]이 aa1, bb1 포함하는 전체가 될테죠
에쿠 설명이 어려워...




답변을 작성하시기 전에 로그인 해주세요.
전체 220
QA 내용 검색

회원로그인

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