仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4639|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页编程之正则表达式利用详解(一)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:03:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?   

假如咱们问那些UNIX体系的喜好者他们最喜好甚么,谜底除不乱的体系和可以近程启动以外,十有八九的人会提到正则表达式;假如咱们再问他们最头痛的是甚么,能够除庞杂的历程掌握和装置进程以外,还会是正则表达式。那末正则表达式究竟是甚么?若何才干真实的把握正则表达式并准确的加以天真应用?本文迁就此睁开引见,但愿可以对那些巴望懂得和把握正则表达式的读者有所助益。
   
   
  入门简介
   
    复杂的说,正则表达式是一种可以用于形式婚配和交换的强无力的东西。咱们可以在几近一切的基于UNIX体系的东西中找到正则表达式的身影,例如,vi编纂器,Perl或PHP剧本言语,和awk或sed shell法式等。另外,象JavaScript这类客户真个剧本言语也供应了对正则表达式的撑持。因而可知,正则表达式已超越了某种言语或某个体系的局限,成为人们广为承受的概念和功效。
   
    正则表达式可让用户经由过程利用一系列的特别字符构建婚配形式,然后把婚配形式与数据文件、法式输出和WEB页面的表单输出等方针对象停止对照,依据对照对象中是不是包括婚配形式,履行响应的法式。
   
    举例来讲,正则表达式的一个最为广泛的使用就是用于验证用户在线输出的邮件地址的格局是不是准确。假如经由过程正则表达式验证用户邮件地址的格局准确,用户所填写的表单信息将会被正常处置;反之,假如用户输出的邮件地址与正则表达的形式不婚配,将会弹出提醒信息,请求用户从头输出准确的邮件地址。因而可知正则表达式在WEB使用的逻辑判别中具有无足轻重的感化。
   
   
  根基语法
   
    在对正则表达式的功效和感化有了初步的懂得以后,咱们就来详细看一下正则表达式的语法格局。
   
    正则表达式的模式普通以下:
   
    /love/
   
    个中位于“/”定界符之间的局部就是将要在方针对象中停止婚配的形式。用户只需把但愿查找婚配对象的形式内容放入“/”定界符之间便可。为了可以利用户加倍天真的定制形式内容,正则表达式供应了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特别意义的公用字符,可以用来划定其前导字符(即位于元字符后面的字符)在方针对象中的呈现形式。
   
    较为经常使用的元字符包含: “+”, “*”,和 “?”。个中,“+”元字符划定其前导字符必需在方针对象中一连呈现一次或屡次,“*”元字符划定其前导字符必需在方针对象中呈现零次或一连屡次,而“?”元字符划定其前导对象必需在方针对象中一连呈现零次或一次。
   
    上面,就让咱们来看一下正则表达式元字符的详细使用。
   
    /fo+/
   
    由于上述正则表达式中包括“+”元字符,暗示可以与方针对象中的 “fool”, “fo”, 或 “football”等在字母f前面一连呈现一个或多个字母o的字符串相婚配。
   
    /eg*/
   
    由于上述正则表达式中包括“*”元字符,暗示可以与方针对象中的 “easy”, “ego”, 或 “egg”等在字母e前面一连呈现零个或多个字母g的字符串相婚配。
   
    /Wil?/
   
    由于上述正则表达式中包括“?”元字符,暗示可以与方针对象中的 “Win”, 或 “Wilson”,等在字母i前面一连呈现零个或一个字母l的字符串相婚配。
   
    除元字符以外,用户还可以准确指定形式在婚配对象中呈现的频率。例如,
   
    /jim{2,6}/
   
    上述正则表达式划定字符m可以在婚配对象中一连呈现2-6次,因而,上述正则表达式可以同jimmy或jimmmmmy等字符串相婚配。
   
    在对若何利用正则表达式有了初步懂得以后,咱们来看一下其它几个主要的元字符的利用体例。
   
    \s:用于婚配单个空格符,包含tab键和换行符;
   
    \S:用于婚配除单个空格符以外的一切字符;
   
    \d:用于婚配从0到9的数字;
   
    \w:用于婚配字母,数字或下划线字符;
   
    \W:用于婚配一切与\w不婚配的字符;
   
    . :用于婚配除换行符以外的一切字符。
   
    (申明:咱们可以把\s和\S和\w和\W看做互为逆运算)
   
    上面,咱们就经由过程实例看一下若何在正则表达式中利用上述元字符。
   
    /\s+/
   
    上述正则表达式可以用于婚配方针对象中的一个或多个空格字符。
   
    /\d000/
   
    假如咱们手中有一份庞杂的财政报表,那末咱们可以经由过程上述正则表达式垂手可得的查找到一切总额达千元的款子。
   
    除咱们以上所引见的元字符以外,正则表达式中还具有别的一种较为共同的公用字符,即定位符。定位符用于划定婚配形式在方针对象中的呈现地位。
   
    较为经常使用的定位符包含: “^”, “$”, “\b” 和 “\B”。个中,“^”定位符划定婚配形式必需呈现在方针字符串的开首,“$”定位符划定婚配形式必需呈现在方针对象的开头,\b定位符划定婚配形式必需呈现在方针字符串的开首或开头的两个界限之一,而“\B”定位符则划定婚配对象必需位于方针字符串的开首和开头两个界限以内,即婚配对象既不克不及作为方针字符串的开首,也不克不及作为方针字符串的开头。一样,咱们也能够把“^”和“$”和“\b”和“\B”看做是互为逆运算的两组定位符。举例来讲:
   
    /^hell/
   
    由于上述正则表达式中包括“^”定位符,所以可以与方针对象中以 “hell”, “hello”或 “hellhound”开首的字符串相婚配。
   
    /ar$/
   
    由于上述正则表达式中包括“$”定位符,所以可以与方针对象中以 “car”, “bar”或 “ar” 开头的字符串相婚配。
   
    /\bbom/
   
    由于上述正则表达式形式以“\b”定位符开首,所以可以与方针对象中以 “bomb”, 或 “bom”开首的字符串相婚配。
   
    /man\b/
   
    由于上述正则表达式形式以“\b”定位符开头,所以可以与方针对象中以 “human”, “woman”或 “man”开头的字符串相婚配。
   
    为了可以便利用户加倍天真的设定婚配形式,正则表达式答应利用者在婚配形式中指定某一个局限而不局限于详细的字符。例如:
   
    /[A-Z]/
   
    上述正则表达式将会与从A到Z局限内任何一个大写字母相婚配。
   
    /[a-z]/
   
    上述正则表达式将会与从a到z局限内任何一个小写字母相婚配。
   
    /[0-9]/
   
    上述正则表达式将会与从0到9局限内任何一个数字相婚配。
   
    /([a-z][A-Z][0-9])+/
   
    上述正则表达式将会与任何由字母和数字构成的字符串,如 “aB0” 等相婚配。这里需求提示用户注重的一点就是可以在正则表达式中利用 “()” 把字符串组合在一同。“()”符号包括的内容必需同时呈现在方针对象中。因而,上述正则表达式将没法与诸如 “abc”等的字符串婚配,由于“abc”中的最初一个字符为字母而非数字。
   
    假如咱们但愿在正则表达式中完成相似编程逻辑中的“或”运算,在多个分歧的形式中任选一个停止婚配的话,可使用管道符 “|”。例如:
   
    /to|too|2/
   
    上述正则表达式将会与方针对象中的 “to”, “too”, 或 “2” 相婚配。
   
    正则表达式中还有一个较为经常使用的运算符,即否认符 “[^]”。与咱们前文所引见的定位符 “^” 分歧,否认符 “[^]”划定方针对象中不克不及存在形式中所划定的字符串。例如:
   
    /[^A-C]/
   
    上述字符串将会与方针对象中除A,B,和C以外的任何字符相婚配。普通来讲,当“^”呈现在 “[]”内时就被视做否认运算符;而当“^”位于“[]”以外,或没有“[]”时,则应该被视做定位符。
   
    最初,当用户需求在正则表达式的形式中到场元字符,并查找其婚配对象时,可使用本义符“\”。例如:
   
    /Th\*/
   
    上述正则表达式将会与方针对象中的“Th*”而非“The”等相婚配。
   
   
   
   
  
对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。
飘飘悠悠 该用户已被删除
21#
发表于 2015-10-8 05:04:06 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-10-4 08:56:25 | 只看该作者
爱上php,他也会爱上你。
第二个灵魂 该用户已被删除
19#
发表于 2015-9-30 01:17:40 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
冷月葬花魂 该用户已被删除
18#
发表于 2015-9-26 04:23:36 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
若相依 该用户已被删除
17#
发表于 2015-6-28 16:39:40 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
不帅 该用户已被删除
16#
发表于 2015-6-22 14:24:51 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
只想知道 该用户已被删除
15#
发表于 2015-6-10 00:58:16 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
乐观 该用户已被删除
14#
发表于 2015-5-4 07:52:22 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
变相怪杰 该用户已被删除
13#
发表于 2015-4-24 04:30:09 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
谁可相欹 该用户已被删除
12#
发表于 2015-4-18 02:11:35 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
愤怒的大鸟 该用户已被删除
11#
发表于 2015-4-14 16:04:03 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
精灵巫婆 该用户已被删除
10#
发表于 2015-4-3 05:19:48 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
老尸 该用户已被删除
9#
发表于 2015-3-22 17:08:24 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
柔情似水 该用户已被删除
8#
发表于 2015-3-19 11:27:14 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
透明 该用户已被删除
7#
发表于 2015-3-11 20:24:07 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
飘灵儿 该用户已被删除
6#
发表于 2015-3-8 02:14:52 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
莫相离 该用户已被删除
5#
发表于 2015-2-25 20:21:34 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
简单生活 该用户已被删除
地板
发表于 2015-2-18 16:41:21 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
分手快乐 该用户已被删除
板凳
发表于 2015-2-6 20:42:18 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表