Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung häufig verwendeter PHP-Funktionen für reguläre Ausdrücke (Codebeispiele)

Zusammenfassung häufig verwendeter PHP-Funktionen für reguläre Ausdrücke (Codebeispiele)

不言
不言Original
2018-08-29 16:19:351506Durchsuche

Dieser Artikel bietet eine Zusammenfassung (Codebeispiele) häufig verwendeter PHP-Funktionen für reguläre Ausdrücke. Ich hoffe, dass er für Freunde hilfreich ist.

Häufig verwendete reguläre Ausdrucksfunktionen in PHP
* preg_match()
* preg_match_all()
* preg_replace()
* preg_filter()
* preg_grep()
* preg_split()
* preg_quote()

Die folgende Vergleichserklärung:

Unter Erklärung $pattern normalerweise regulärer Ausdruck $subject stellt normalerweise Zielverarbeitungsdaten dar
Definieren Sie eine Methode, um die Anzeige des Datentyps zu erleichtern:

function show($val = null){
    if(empty($val)){        
    //打印空
        echo 'mull';
    }elseif(is_array($val) || is_object($val)){        
    //打印数组或者对象
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;
        print_r($val);        
        echo &#39;
'; }else{ //打印string int float echo $val; } }
  1. preg_match() und preg_match_all()

  /*方法简单说明*/
  preg_match($pattern,$subject,[array &$matches])  
  //匹配一次  第三个参数可选  匹配结果放置matches数组
  preg_match_all($pattern,$subject,array &matches) 
  //匹配多次  三参必选      匹配结果放置matches数组
  $pattern = &#39;/[0-9]/&#39;;
  $subject=&#39;b5fg4sgf3sd2f1g&#39;;
  $m1 =preg_match($pattern,$subject,$arr1);
show($m1);
show($arr1);
/*
 1
Array
(
    [0] => 5
)
 */
 $m2 =preg_match_all($pattern,$subject,$arr2);
show($m2);
show($arr2);
/*
 5
Array
(
    [0] => Array
        (
            [0] => 5
            [1] => 4
            [2] => 3
            [3] => 2
            [4] => 1
        )

)
 */

2.preg_replace() und preg_filter ()

/*方法简单说明*/
/*
 *
 * preg_replace与preg_filter
 * preg_replace($pattern,$replacement,$subject)
 * //正则替换函数被替换对象是数组 返回全部
//正则替换函数 被替换对象是数组 仅返回被替换元素
 * 联想:str_repalce() 
 * echo str_replace("world","Shanghai","Hello world!");
 * //得到Hello Shanghai!

//第一测 字符串中替换字符串 结论:此处preg_replace()与preg_filter()无区别
$pattern = &#39;/[0-9]/&#39;;
$subject=&#39;b65fg4sgf3sd2f1g&#39;;
$replacement = &#39;_&#39;;
$str1 = preg_replace($pattern,$replacement,$subject);
$str2 = preg_filter($pattern,$replacement,$subject);
echo &#39;<hr>&#39;;
show($str1);
echo &#39;<br>&#39;;
show($str2);
/*
b__fg_sgf_sd_f_g
b__fg_sgf_sd_f_g
 */

 //第二测  字符串中根据数组正则 替换  结论:此处preg_replace()与preg_filter()无区别
 $pattern = array(&#39;/[123]/&#39;,&#39;/[456]/&#39;,&#39;/[789]/&#39;);
 $subject=&#39;b123fg3456sgf3789f1g&#39;;
 $replacement = array(&#39;天&#39;,&#39;地&#39;,&#39;人&#39;);
 $str3 = preg_replace($pattern,$replacement,$subject);
 $str4 = preg_filter($pattern,$replacement,$subject);
 echo &#39;<hr>&#39;;
show($str3);
echo &#39;<br>&#39;;
show($str4);
/*
b天天天fg天地地地sgf天人人人f天g
b天天天fg天地地地sgf天人人人f天g
 */

 //第三测  数组中根据数组正则 替换  结论:此处展示preg_repalce()与preg_filter()区别
 $pattern = array(&#39;/[123]/&#39;,&#39;/[456]/&#39;,&#39;/[789]/&#39;);
 $subject=array(&#39;b&#39;,&#39;fg3&#39;,&#39;456&#39;,&#39;sgf&#39;,&#39;789&#39;,&#39;fg&#39;);
 $replacement = array(&#39;天&#39;,&#39;地&#39;,&#39;人&#39;);
 $str5 = preg_replace($pattern,$replacement,$subject);
 $str6 = preg_filter($pattern,$replacement,$subject);
 echo &#39;<hr>&#39;;
show($str5);
echo &#39;<br>&#39;;
show($str6);
/*
Array
(
    [0] => b
    [1] => fg天
    [2] => 地地地
    [3] => sgf
    [4] => 人人人
    [5] => fg
)

Array
(
    [1] => fg天
    [2] => 地地地
    [4] => 人人人
)
 */

3 . preg_grep($pattern, $subject) //Hier kann $subject nur ein eindimensionales Array sein

/*函数说明*/
preg_grep($pattern,array $input)//只可以匹配一维数组 返回匹配成功的数组元素
可以理解preg_grep()为阉割版 preg_filter()
只做了匹配 不作替换
$pattern = &#39;/[0-9]/&#39;;
$subject=array(&#39;b&#39;,&#39;fg3&#39;,&#39;456&#39;,&#39;sgf&#39;,&#39;789&#39;,&#39;fg&#39;);
$arr = preg_grep($pattern,$subject);
show($arr);
/*
Array
(
    [1] => fg3
    [2] => 456
    [4] => 789
)
 */

4 . //Eins Wenn die Übereinstimmung erfolgreich ist, wird die Zeichenfolge in ein Array für den Schnittpunkt
geschnitten. Sie können die aktualisierte Version von explosion() von preg_split()

$pattern = &#39;/[0-9]/&#39;;
$subject=&#39;bfg3456sgf789fg&#39;;
$arr = preg_split($pattern,$subject);
show($arr);
/*
Array
(
    [0] => bfg
    [1] =>
    [2] =>
    [3] =>
    [4] => sgf
    [5] =>
    [6] =>
    [7] => fg
)
 */

5 verstehen str) Die Übersetzung des regulären Operators

/*
 * preg_quote($str) 正则运算符转译
 *  . \ + * ? [ ^ ] $ () {} = ! < > | : -
 *
 */
 echo &#39;<hr>&#39;;
 $str = "qewr{asdf}[123]";
 $str =preg_quote($str);
print_r($str);
/*
qewr\{asdf\}\[123\]
*/

ist einfach. Zusammenfassung:
Preg_ beginnt mit
Mit Ausnahme der Funktion preg_quote ist der erste Parameter ein regulärer Ausdruck
preg_match-Formularvalidierung usw.
preg_replace illegale Wortfilterung usw.

Verwandte Empfehlungen:

Gemeinsame PHP-Funktionen für reguläre Ausdrücke, PHP-Funktion für reguläre Ausdrücke

Zusammenfassung häufig verwendeter regulärer PHP-Ausdrücke, PHP-Regulärausdrücke_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonZusammenfassung häufig verwendeter PHP-Funktionen für reguläre Ausdrücke (Codebeispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn