복붙노트

그들이 적용되기 전에 정규식 패턴을 벗어날 수있는 PHP 함수가 있습니까?

PHP

그들이 적용되기 전에 정규식 패턴을 벗어날 수있는 PHP 함수가 있습니까?

그들이 적용되기 전에 정규식 패턴을 벗어날 수있는 PHP 함수가 있습니까?

나는 C # Regex.Escape () 함수의 라인을 따라 뭔가를 찾고있다.

해결법

  1. ==============================

    1.preg_quote ()가 당신이 찾고있는 것이다 :

    preg_quote ()가 당신이 찾고있는 것이다 :

    중요한 것은 $ delimiter 인수가 지정되지 않으면 정규 표현식을 감싸는 데 사용되는 문자 (일반적으로 슬래시 (/))가 이스케이프되지 않는다는 점입니다. 대개 $ delimiter 인수로 정규 표현식에서 사용하는 구분 기호를 전달하려고합니다.

    $url = 'http://stackoverflow.com/questions?sort=newest';
    
    // preg_quote escapes the dot, question mark and equals sign in the URL (by
    // default) as well as all the forward slashes (because we pass '/' as the
    // $delimiter argument).
    $escapedUrl = preg_quote($url, '/');
    
    // We enclose our regex in '/' characters here - the same delimiter we passed
    // to preg_quote
    $regex = '/\s' . $escapedUrl . '\s/';
    // $regex is now:  /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/
    
    $haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla";
    preg_match($regex, $haystack, $matches);
    
    var_dump($matches);
    // array(1) {
    //   [0]=>
    //   string(48) " http://stackoverflow.com/questions?sort=newest "
    // }
    
  2. from https://stackoverflow.com/questions/1531456/is-there-a-php-function-that-can-escape-regex-patterns-before-they-are-applied by cc-by-sa and MIT license