这个函数是个正则表达式,代码如下

1
2
3
4
5
6
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
echo "查找到匹配的字符串 php。";
} else {
echo "未发现匹配的字符串 php。";
}
?>

输出:查找到匹配的字符串 php
上面的代码的意思为:在后式的”PHP”中查找前式列出的字符串php,有则返回1无返回0
/php/两边的/是用于对字符串的分隔//后的i代表这是一个对大小写不敏感的查询所有这个会返回1就是真

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/* 模式中的 \b 标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配
* 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "查找到匹配的字符串。\n";
} else {
echo "未发现匹配的字符串。\n";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "查找到匹配的字符串。\n";
} else {
echo "未发现匹配的字符串。\n";
}
?>

输出

1
2
查找到匹配的字符串。
未发现匹配的字符串。

在前式的字符串用/分隔字符串时可以添加\b来标记单词边界,只有独立的单词会被查询匹配

正则表达式的几种修饰符

i:忽略大小写的匹配
s:可以匹配任意字符包括换行符
m:可以采用多行识别,遇到换行也承认匹配规则
x:忽略掉规则模式中的空白字符
a:强制从头开始匹配
u:禁止贪婪匹配,只跟踪到最近的一个匹配符并结束