2013-05-03 2 views
0

일부 PHP 코드를 읽으려고하고 있는데 왜 preg_replace에 항상 슬래시가 있는지 궁금합니다. 나는 C++에서 작성한 정규식의, 나는 같은 일을하지 않고 궁금 이유preg_replace의 슬래시

PHP : preg_replace('/blah/', '', $str)하지만 C++에서 나는 "blah"

내가받을 수 단지 문자열로 정규식을 만들 것 여기에 약간의 설명이 있습니까? 시작과 끝의 슬래시는 무엇입니까? 감사합니다.

답변

6

이들은 단지 정규식 구분 기호입니다. PHP manual documentation on Delimiters에서 :

분리 문자는 영숫자가 아닌, 비 백 슬래시, 공백이 아닌 문자가 될 수 있습니다.

자주 사용하는 구분 기호는 슬래시 (/), 해시 기호 (#)와 물결표 (~)입니다. 다음은 모두 유효 범위가 지정된 패턴의 예입니다.

+0

나는 @ 기호를 좋아한다. – ceejayoz

+2

매뉴얼에 나온 바와 같이.'구분 기호는 영숫자가 아니거나 백 슬래시가 아닌 공백이 아닌 문자가 될 수 있습니다. "가능합니다. ^. ^ – reikyoushin

3

그들은 단락 기호이므로 수정 기호를 추가 할 수 있습니다./대/대문자/소문자를 구분하지 않는 정규 표현식.

슬래시 사용은 필자가 알고있는 한 perl이나 shell/sed에서 제공됩니다.

PHP에서는 다른 문자를 사용할 수 있다는 점에서 필수 항목은 아닙니다. 예를 들어, "! blah! i"도 작동합니다. 또한 대괄호를 사용하는 특수 구문이 있는데, 이스케이프 할 필요가 없으므로 오류가 발생하기 쉽습니다. "{blah} i".

+0

그래서 C++ 정규식에서도 마찬가지입니까? – jamesatha

+0

C++ 정규식이 어떤 맛인지 모르겠습니다. preg_ * 함수는 Perl과 호환되므로 Perl과 동일합니다. –

관련 문제