preg_match 특수문자 정규식 질문입니다.

preg_match 특수문자 정규식 질문입니다.

QA

preg_match 특수문자 정규식 질문입니다.

본문

기존에는 ereg_replace 이걸로 썼는데 php 버전업이 되는 바람에 못 써서

 

preg_match 이걸로 교체해야 하는데 특수문자 처리를 잘 모르겠습니다.

 

예를 들어

 

1, / 이거 하나만 패턴으로 찾을려고 하면 어떻게 해야 하나요?

$pattern = "/^//i";

이렇게하면 될까 했는데 안되더라고요.

 

2, 그리고 "http://" 이거를 패턴으로 할려고 하면 어떻게 해야 하나요?

 

이 질문에 댓글 쓰기 :

답변 1

- https://www.php.net/manual/en/regexp.reference.escape.php

 

if ( preg_match('/\//', $변수) ) echo '/ 문자 포함';

 

구분자를 /가 아닌 다른 문자를 사용하면 Escape 처리가 편해집니다.

 

if ( preg_match('#/#', $변수) ) echo '/ 문자 포함';

 

http:// 패턴 지정도 마찬가지입니다.

 

if ( !preg_match('#^http://#', $변수) ) exit('http://로 시작하지 않습니다.'); // 대소문자 무시 #^http://#i

 

if ( !preg_match('#^https?://#', $변수) ) exit('http:// 또는 https://로 시작하지 않습니다.');

 

단순 문자[열] 포함 여부는 strpos() 함수 사용이 간편합니다.

 

if ( strpos($변수, '/')!==false ) echo '/ 문자 포함!';

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

회원로그인

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