2012-11-05 2 views
0

대부분의 PHP 워드 프로세서처럼 슬래시에 싸여 regexps '에 보여 내가 WP의 formatting.php의 소스에서 찾고 있었다슬래시 대신 파이프로 정규 표현식을 사용 하시겠습니까?

preg_replace('/\s+/', ' ', $str); 

및 파이프 대신 슬래시에 싸여 일부 regexps'에 보았다. 파이프 배치의 동작은 슬래시의 배치와 어떻게 다릅니 까? 기능상의 차이점이 있습니까? 해당 파일의 예는 다음과 같습니다

preg_replace('|\s+|', ' ', $str); # consolidate whitespace 

preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $str); # remove octets 
+1

'PCRE 기능을 사용할 때는 패턴이 구분 기호로 묶여 있어야합니다. 구분 기호는 영숫자가 아니며 백 슬래시가 아닌 공백이 아닌 문자가 될 수 있습니다. 'http://www.php.net/manual/en/regexp.reference.delimiters.php – nhahtdh

+1

그것은 맛 IMO의 문제 일뿐입니다. 패턴에 슬래시가 있고 쉽게 벗어날 수없는 경우 가끔 있습니다. 그들. – shinkou

답변

3

비 슬래시 구분 기호, 당신이 그들을 탈출 할 필요가 없기 때문에 파이프 문자처럼, 쉽게 슬래시에 대한 일치 할 수 있습니다.

preg_replace('|/+|', '/', $str); # collapse consecutive slashes in path 
+1

글쎄요. 전혀 몰랐다. 내 ... 마음이 좀 날아간거야. PHP.net 문서가 구문과 더 이상 일치하지 않는다는 사실에 짜증을냅니다. – philtune

관련 문제