PHP 正则表达式常用函数
本文将介绍PHP中正则表达式的常用函数及其使用场景。这些函数包括preg_match()、ereg()和eregi(),以及用于替换的ereg_replace()和eregi_replace()等函数。
一、preg_match()函数
preg_match()是PHP中与Perl兼容的正则表达式匹配函数。它的函数原型为int preg_match(string $pattern, string $content [, array $matches])。该函数在$content字符串中搜索与$pattern给出的正则表达式相匹配的内容。如果提供了$matches,则将匹配结果放入其中。代码示例如下:
示例代码:日期时间的匹配
```php
// 需要匹配的字符串,包含当前时间
$content = "Current date and time is ".date("Y-m-d h:i a").", we are learning PHP together.";
// 使用正则表达式匹配时间
if (preg_match("/(\d{4}-\d{2}-\d{2} \d{2}:\d{2} [ap]m)/", $content, $m)) {
echo "匹配的时间是:" .$m[0];
}
// 由于时间的模式明显,也可以简单地匹配日期和时间部分
if (preg_match("/(\d{4}-\d{2}-\d{2})/ (\d{2}:\d{2} [ap]m)/", $content, $m)) {
echo "当前日期是:" .$m[1];
echo "当前时间是:" .$m[2];
}
?>
```
在编程中,“/0”或“$0”代表着整个匹配字符串的内容。当我们在双引号中使用反斜线时,它作为转义符出现,因此必须使用“//0”,“//1”的形式。
eregi_replace()和ereg_replace()这两个函数在功能上有很多相似之处,但前者在处理时会忽略字符串的大小写。代码6.6展示了一个使用这两个函数的实例,这段代码主要演示了如何对程序源代码进行简洁的清理工作。
代码6.6 源代码的清理
将'source.php'文件的内容读入一个数组中。然后,通过循环逐行处理,去除以“//”或“”开头的行末注释,并消除行末的空白字符。将整理后的内容输出到页面上。
还有一个更强大的函数——preg_replace(),它的功能比ereg_replace更为强大。前三个参数都可以是数组形式,并且第四个参数$limit可以设置替换的次数,默认为全部替换。代码6.7展示了数组替换的应用实例。
代码6.7 数组替换
给定一个包含占位符的字符串,通过定义模式和替换字符串数组,使用preg_replace()函数进行替换。例如,将"{Name}"替换为"Thomas Ching",将"{Email}"替换为"tom@emailaddress."等。
在preg_replace的正则表达式中,还可以使用模式修正符“e”,它能够将匹配结果作为表达式重新运算。例如,将HTML标签全部转换为小写字母。
preg_replace函数使用Perl兼容的正则表达式语法,通常比ereg_replace更快,是更高效的替代方案。如果只需要对字符串进行简单的替换,可以使用str_replace函数。在进行复杂的字符串处理时,preg_replace无疑是一个强大的工具。在进行web开发时,对于像cambrian.render('body')这样的操作,使用这些函数可以更加便捷地处理字符串和文本内容。
编程语言
- PHP 正则表达式常用函数
- 使用postMesssage()实现跨域iframe页面间的信息传递方
- jquery中EasyUI实现异步树
- 如何在线查询本地机的文件?
- sql实现修改表字段名的方法详解
- 存储过程优缺点分析
- Javascript中的高阶函数介绍
- JS仿淘宝实现的简单滑动门效果代码
- JavaScript中计算网页中某个元素的位置
- JS沙箱模式实例分析
- Javascript点击其他任意地方隐藏关闭DIV实例
- 清除SQL SERVER错误日志出现操作系统错误的解决方
- Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分
- 详解webpack 打包文件体积过大解决方案(code spl
- Backbone.js 0.9.2 源码注释中文翻译版
- jQuery实现点击后标记当前菜单位置(背景高亮菜单