테스트 사이트 - 개발 중인 베타 버전입니다

preg_match 특수문자 정규식 질문입니다. 채택완료

스니음 5년 전 조회 1,788

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

 

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

 

예를 들어

 

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

$pattern = "/^//i";

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

 

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

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
B
5년 전

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인