정규식 관련.. 채택완료
포도주스와
11년 전
조회 4,480
<?
$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개
채택된 답변
+20 포인트
11년 전
/([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 포함하는 전체가 될테죠
에쿠 설명이 어려워...
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인