| 主站电信 主站网通 资讯中心 发布软件 软件分类 最新软件 推荐软件 热门软件 最新文章 热门文章 用户注册 用户登录 找回密码 退出登录 | |||||||||||
|
|
设为首页 加入收藏 繁體中文 |
|
|
|
| PHP与正则表达系列之一: PHP中的正则表达式 |
| 作者:esayr, LEO 来源:PHP5研究室 时间:2008-8-17 14:41:03 字体:大 中 小 |
今天起,会开始弄一个PHP教程系列文章. 主要是针对正则表达式的。 大概的内容排序是这样安排的: 1. PHP 中的正则表达式 2. 八个实用的PHP正则表达式 3. 如何书写更易阅读的PHP正则表达式 4. 半小时精通正则表达式 5. 正则在文章采集系统中的应用及常见问题答疑 6. ...更多策划中 文章内容来源方面,有本站旧文重新整理而来,也有翻译英文文献而来(感谢在加拿大的!oEL同学),还有些是个人心得。 个人能力有限,肯定有一些错误,发现的朋友请给予提醒以及时更正. 不至误导新手. 如果文章能给大家一些参考,就很满足了。 PHP与正则表达系列之: PHP 中的正则表达式 正则表达式简介及正则表达式在PHP中的作用 正则表达式是一种表示规则的途经,在 PHP 中利用这些规则可以让你灵活变通地匹配、检验、替换以及字符串。本文涉及到 PCRE 的基础,以及如何使用 preg_match(),preg_replace(),and preg_split() 函数。 接下来就让我们从实例循序渐进地开始学习如何使用这些函数。 规则匹配 preg_match 利用 preg_match(),我们可以完成字符串的规则匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。 $string = "football";
if (preg_match('/foo/', $string)) { // 匹配正确 }
$string = "first.last@domain.uno.dos";
if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { // 验证Email地址 }
PCRE 顾名思义,与在 Perl 中的正则表达式有相同的语法,所以每段正则表达式必须要有一对定界符。我们一般使用 / 为定界符。 开头的 ^ 和结尾的 $ 让PHP从字符串开头检查到结尾。假使没有 $,程序仍会匹配到 Email 的末尾。 [ 和 ] 被用来限制许可输入类型。例如 a-z 允许所有的小写字母,A-Z 允许所有的大写字母,0-9 所有数字,等等,以及更多其他类型。 { 和 } 被用来限制期望的字符数。例如 {2,4} 表示字符串的每一节可以有 2-4 字符长度,像是 .com.cn 或 .info。在这里, "." 并不算一个字符,因为 {2,4} 之前定义的许可输入类型只有大小写字母,故此段只匹配大小写字母 ( 和 ) 被用来合并小节,并定义字符串中必须存在的字符。(a|b|c) 能够匹配 a 或 b 或 c。 (.) 将匹配所有字符,而 [.] 只匹配 "." 本身。 要使用一些符号本身,必须在前增加一个 。这些字符有: ( ) [ ] . * ? + ^ | $ 规则替换 preg_replace preg_replace 允许你替换字符串中匹配到你定义的正则表达式。一个简单的注释移除功能: preg_replace('[(/*)+.+(*/)]', '', $val);
这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串 -> '')。如果你想匹配次级规则,可以使用 $0 代表全部匹配,$1、$2 等,以此类推代表分别的次级规则。 规则分割preg_split preg_split 可以将整段字符串按匹配到的正则表达式分割成 1、2或更多字符的多段。比如获取标签,无论是用空格还是逗号分隔的: $tags = preg_split('/[,]/', 'my,tags,unevenly,spaced');
print_r($tags);
但有时候一段正则表达式并不能让你如愿以偿得到预期的结果是件很烦人的事,所以我将在本系列的第二篇文章附上一些简单的语法指南希望能够帮到大家。 附:PCRE 语法指南 / 定界符 特殊字符(需要在前加 ) |
| 【返回上一页】 【告诉好友】 【打 印】 【字体:大 中 小】 |
| 上一篇文章:阿里巴巴遭“暗算”疑是同城同行所为 | 下一篇文章:SEO未来的路有多远 |
| ∷相关文章∷ | ∷热门文章∷ | |
| · 中国网游Q2规模44亿元-网游商排名盛大... · 高潮里的微观变化:浅析PHPWind和Disc... · Sony Ericsson Themes Creator V3.27 ... · 董方卓如何公关谢亚龙-做大饼的如何请... · QQ空间使用大全,你一定要看(精选) |
| 文章评论 |
|
|
|
|
|
||||
| 关于本站 联系我们 下载声明 广告联系 软件发布 下载帮助 | ||||
|
| 软件按字母排列:A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 23 - @ |
| 中文按声母排列:A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z |
| 系统工具 网络工具 应用软件 联络聊天 图形图像 多媒体类 硬件驱动 编程开发 安全相关 教育教学 源码程序 单机游戏 网络游戏 游戏娱乐 |