Programming Language/PHP
[PHP] preg_match ( 패턴일치 & 정규표현식 적용)
재테크하는 개발자
2019. 10. 17. 16:39
시작에 앞서,
* 정규표현식에 대해 자세히 알고싶으신 분 or 정규표현식을 처음보시는 분은 아래 URL을 참고해주세요.
https://choseongho93.tistory.com/130
● preg_match() 형식 $result = preg_match($pattern, $subject) (preg_match()를 실행한 결과, 일치하면 1, 일치하지 않으면 0, 패턴을 인식하지못하는 오류발생하면 false가 return 됩니다.) |
$result1 = preg_match("/hello/u", "world"); // 불일치
$result2 = preg_match("/hello/u", "hello"); // 일치
$result3 = preg_match("/hellou", "hello world"); // 패턴오류발생
var_dump($result1);
var_dump($result2);
var_dump($result3);
패턴으로 /(슬래시)와 / 안에 hello 문자를 넣고, 후자 파라미터로 "world"를 넣었습니다.
하지만, "hello"를 넣은 두번째 변수는 hello와 일치하여 1이 return 됩니다.
$result1은 불일치가 발생하고, $result2는 일치됩니다. 마지막 $result3는 패턴오류로 "false" 발생합니다.
(u 키워드는 패턴문자를 UTF-8 인코딩으로 다루어주는 '후치 option'입니다.)
// 개발자와 일치한다.
$pattern = "/개발자/u";
var_dump(preg_match($pattern,"제 직업은 경찰관입니다."));
var_dump(preg_match($pattern,"제 직업은 크리에이터입니다."));
var_dump(preg_match($pattern,"제 직업은 개발자입니다."));
$pattern 변수에 원하는 정규표현식 패턴을 선언해줍니다.
개발자와 일치하는 마지막만 1이 출력됩니다.
$pattern = "/^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/";
$myPhoneNumber = "010-1234-1234";
$yourPhoneNumber = "013-1234-1234";
var_dump(preg_match($pattern,$myPhoneNumber));
var_dump(preg_match($pattern,$yourPhoneNumber));
$pattern 변수에 휴대폰 정규표현식을 선언해주었습니다.
나의 폰번호는 010으로 시작하기에 1이 출력됩니다.
하지만, 너의 폰번호는 013으로 시작하기에 정규표현식에서 맞지않아 0이 출력됩니다.