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

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

QA

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

답변 1

본문

기존에는 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 '/ 문자 포함!';

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로