前端之家收集整理的这篇文章主要介绍了
preg_match进行正则表达式匹配,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
preg_match
(PHP 3 >= 3.0.9,PHP 4,PHP 5)
preg_match--进行正则表达式匹配
说明
int
preg_match ( string pattern,string subject [,array matches [,int flags]] )
在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。
如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
flags 可以是下列标记:
-
PREG_OFFSET_CAPTURE
-
如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自 PHP 4.3.0 起可用。
flags 参数自
PHP 4.3.0 起可用。
preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反,会一直搜索到 subject 的结尾处。如果出错 preg_match() 返回 FALSE。
例子 1. 在文本中搜索“PHP”
<?PHP //模式定界符后面的"i"表示不区分大小写字母的搜索 if(preg_match("/PHP/i","PHPisthewebscriptinglanguageofchoice.")){ print"Amatchwasfound."; }else{ print"Amatchwasnotfound."; } ?> |
|
例子 2. 搜索单词“web”
<?PHP /*模式中的\b表示单词的边界,因此只有独立的"web"单词会被匹配, *而不会匹配例如"webbing"或"cobweb"中的一部分*/ if(preg_match("/\bweb\b/i","PHPisthewebscriptinglanguageofchoice.")){ print"Amatchwasfound."; }else{ print"Amatchwasnotfound."; } if(preg_match("/\bweb\b/i","PHPisthewebsitescriptinglanguageofchoice.")){ print"Amatchwasfound."; }else{ print"Amatchwasnotfound."; } ?> |
|
例子 3. 从 URL 中取出域名
<?PHP //从URL中取得主机名 preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.PHP.net/index.html",$matches); $host=$matches[2]; //从主机名中取得后面两段 preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches); echo"domainnameis:{$matches[0]}\n"; ?> |
本例将输出:
|
参见 preg_match_all(),preg_replace() 和 preg_split()。
原文链接:https://www.f2er.com/regex/362960.html