字符串的匹配与查找
preg_match()函数和preg_match_all()函数
该函数的语法格式如下所示:
int preg_match/preg_match_all((string pattern,string subject[,array matches])
函数功能:
在字符串subject中匹配表达式pattern。函数返回匹配次数。如果有数组matches,那么每次匹配的结果都将被存储到数组matches中。
该函数有两个必选参数,第一个参数pattern需要提供用户按正则表达式语法编写的模式,第二个参数subject需要一个字符串。该函数的作用就是在第二个字符串参数中,搜索与第一个参数给出的正则表达式匹配的内容。如果提供了第三个可选的数组参数matches,则可以用于保存于第一个参数中的子模式的各个部分的匹配结果。正则表达式中的子模式是使用括号“()”括起的模式单元,其中数组中的第一个元素matches[0]保存了与正则表达式pattern匹配的整体内容。而数组matches中的其他元素,则按顺序依次保存了与正则表达式小括号内子表达式相匹配的内容。例如matches[1]保存了与正则表达式中第一个小括号内匹配的内容,matches[2]保存了与正则表达式中第二个小括号内匹配的内容,依次类推。该函数只做一次匹配,最终返回0或1的匹配结果数。
实例展示:
<?php $str = 'This is an example'; $preg = '/\b\w{2}\/\'; $num1 = petg_match($preg,$str,$str1); echo $num1.'<br/>' var_dump($str1); $num2 = petg_match_all($preg,$str,$str2); echo $num2.'<br/>' var_dump($str2); ?>
使用.preg_match()函数和preg_match_all()函数来匹配字串$str,并返回各自的匹配次数。
preg_quote()函数
函数语法格式如下:
string preg_quote(string str[,string delimiter])
函数功能:该函数讲字符串str中的所有特殊字符进行自动转义。如果有参数delimiter,那么该参数
所包含的字串也将被转义。函数返回转义后的字串。
实例展示:
<?php $str = '!、$、^、*、+、.、[、]、\\、/、b、<、>'; $str2 = 'b'; $match_one = preg_quote($str,$str2); echo $match_one; ?>
注意:这里的特殊字符是指正则表达式中具有一定意义的元字符。其他如“@”、“#”等则不会被当做特殊字符处理。
以上がPerlと互換性のある正規表現関数 (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。