정규 표현 식(regex)또는 연산 자"|"사용 하기 쉬 운 기능 버그

다음 편:정규 표현 식(regex)오류 사용 으로 기능 에 구멍 이 생 겼 습 니 다.우 리 는 계속 정리 하고 정규 표현 식 을 잘못 사용 하여 기능 디자인 의 구멍(bug)을 초래 합 니 다.웹 을 하 는 데 있어 파악 해 야 할 지식 이 많 습 니 다.사이트 개발 은 국내 에서 10 여 년 동안 많은 개발 자 들 이 교육(독학)->모방->을 통 해 프로젝트 를 하 는 과정 입 니 다.고치 고 고치 면 웹 개발 엔지니어 가 되 는 경우 가 많다.이 업 종 은 입문 이 낮 아서 손 에 넣 기 쉽다.하지만 대사 급 이 되 기 란 쉽 지 않다.배 워 야 하고,습득 해 야 할 지식 은 몇 십 개다.막 입문 한 동인 에 대해 체계 적 인 학습 과 이론 적 지원 이 부족 한 경우 가 많다.마음 은 있 지만 힘 이 부족 합 니 다!따라서 이런 많 든 적 든 기능 설계 에 구멍 이 생기 는 것 은 흔 한 일이 다!
자,주제 에서 벗 어 났 습 니 다.코드 검 사 를 할 때 이런 구멍 도 자주 발생 합 니 다.다음 코드 를 보 겠 습 니 다.

<?php
$user="bcd123  ";
///        abc  bcd  ,         
 
preg_match_all("/abc|bcd\d+/",$user,$match);
var_dump($match);
 
/*   
array(1) {
 [0]=>
 array(1) {
 [0]=>
 string(6) "bcd123"
 }
}
*/
모든 페이지 에 abc 나 bcd 가 나타 나 는 것 을 찾 습 니 다.뒤에 숫자 문자열 을 따라 갑 니 다.위 를 통 해 우 리 는 bcd 123 에 정확하게 일치 하 는 것 을 보 았 습 니 다.만약 우리 가$user="abc 123 장 3"을 입력 하면 일치 하지 않 는 다 는 것 을 알 게 되 었 습 니 다.이 유 는"|"문자 입 니 다.우선 순위 가 가장 낮 습 니 다.이상 의 쓰기 방법 은 abc 나 bcd\d+문자열 과 일치 합 니 다.

위의 그림 은|을()에 포함 합 니 다.
우선 순 위 를 올 리 려 면(abc|bcd)\d+,모든 abc 나 bcd 문자열 과 일치 하 며,뒤에 숫자 를 바짝 따 를 수 있 습 니 다."|"문자열 을 사용 할 때 우선 순위 가 낮 습 니 다.우선 일치 하려 면()에 넣 을 수 있 습 니 다.

좋은 웹페이지 즐겨찾기