PHP网站制作之经常使用正则表达式语法规句
如果不会怎么办,我的视频教程里有个最简单的留言板 最开始离不开模仿,语法|正则 经常使用正则表达式语法规句这里有一些能够会碰到的正则表达式示例:
/^\[ \t]*$/ "^\[ \t]*$" 婚配一个空白行。
/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID号码是不是由一个2位字,一
个连字符和一个5位数字构成。
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 婚配一个 HTML 标志。
下表是元字符及其在正则表达式高低文中的行动的一个完全列表:
字符 描写
\ 将下一个字符标志为一个特别字符、或一个原义字符、或一个 后
向援用、或一个八进制本义符。例如,’n’ 婚配字符 "n"。’\n’
婚配一个换行符。序列 ’\\’ 婚配 "\" 而 "\(" 则婚配 "("。
^ 婚配输出字符串的入手下手地位。假如设置了 RegExp 对象的
Multiline 属性,^ 也婚配 ’\n’ 或 ’\r’ 以后的地位。
$ 婚配输出字符串的停止地位。假如设置了 RegExp 对象的
Multiline 属性,$ 也婚配 ’\n’ 或 ’\r’ 之前的地位。
* 婚配后面的子表达式零次或屡次。例如,zo* 能婚配 "z" 和
"zoo"。 * 等价于{0,}。
+ 婚配后面的子表达式一次或屡次。例如,’zo+’ 能婚配 "zo" 以
及 "zoo",但不克不及婚配 "z"。+ 等价于 {1,}。
? 婚配后面的子表达式零次或一次。例如,"do(es)?" 可以婚配
"do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。婚配肯定的 n 次。例如,’o{2}’ 不克不及婚配
"Bob" 中的 ’o’,然而能婚配 "food" 中的两个 o。
{n,} n 是一个非负整数。最少婚配n 次。例如,’o{2,}’ 不克不及婚配
"Bob" 中的 ’o’,但能婚配 "foooood" 中的一切 o。’o{1,}’
等价于 ’o+’。’o{0,}’ 则等价于 ’o*’。
{n,m} m 和 n 均为非负整数,个中n <= m。起码婚配 n 次且最多匹
配 m 次。刘, "o{1,3}" 将婚配 "fooooood" 中的前三个o。
’o{0,1}’等价于’o?’。请注重在逗号和两个数之间不克不及有空格
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,},
{n,m}) 前面时,婚配形式长短贪心的。非贪心形式尽量少的
婚配所搜刮的字符串,而默许的贪心形式则尽量多的婚配所搜
索的字符串。例如,关于字符串 "oooo",’o+?’ 将婚配单个
"o",而 ’o+’ 将婚配一切 ’o’。
. 婚配除 "\n" 以外的任何单个字符。要婚配包含 ’\n’ 在内的任
何字符,请利用象 ’[.\n]’ 的形式。
(pattern) 婚配pattern 并获得这一婚配。所获得的婚配可以从发生的
Matches 纠合失掉,在VBScript 中利用 SubMatches 纠合,在
Visual Basic Scripting Edition 中则利用 $0…$9 属性。要
婚配圆括号字符,请利用 ’\(’ 或 ’\)’。
(?:pattern) 婚配 pattern 但不获得婚配了局,也就是说这是一个非获得匹
配,不停止存储供今后利用。这在利用 "或" 字符 (|) 来组合
一个形式的各个局部是很有效。例如, ’industr(?:y|ies) 就
是一个比 ’industry|industries’ 更简单的表达式。
(?=pattern) 正向预查,在任何婚配 pattern 的字符串入手下手处婚配查找字符
串。这是一个非获得婚配,也就是说,该婚配不需求获得供今后
利用。例如,’Windows (?=95|98|NT|2000)’ 能婚配"Windows
2000"中的"Windows",但不克不及婚配"Windows3 .1"中"Windows"。
预查不用耗字符,也就是说,在一个婚配产生后,在最初一次匹
配以后当即入手下手下一次婚配的搜刮,而不是从包括预查的字符之
后入手下手。
(?!pattern) 负向预查,在任何不婚配Negative lookahead matches the
search string at any point where a string not matching
pattern 的字符串入手下手处婚配查找字符串。这是一个非获得匹
配,也就是说,该婚配不需求获得供今后利用。例如’Windows
(?!95|98|NT|2000)’ 能婚配 "Windows 3.1" 中的 "Windows",
但不克不及婚配 "Windows 2000" 中的 "Windows"。预查不用耗字
符,也就是说,在一个婚配产生后,在最初一次婚配以后当即开
始下一次婚配的搜刮,而不是从包括预查的字符以后入手下手
x|y 婚配 x 或 y。例如,’z|food’ 能婚配 "z" 或 "food"。’(z|f)
ood’ 则婚配 "zood" 或 "food"。
字符纠合。婚配所包括的恣意一个字符。例如, ’’ 可以
婚配 "plain" 中的 ’a’。
[^xyz] 负值字符纠合。婚配未包括的恣意字符。例如, ’[^abc]’ 可以
婚配 "plain" 中的’p’。
字符局限。婚配指定局限内的恣意字符。例如,’’ 可以匹
配 ’a’ 到 ’z’ 局限内的恣意小写字母字符。
[^a-z] 负值字符局限。婚配任何不在指定局限内的恣意字符。例如,
’[^a-z]’ 可以婚配任何不在 ’a’ 到 ’z’ 局限内的恣意字符。
\b 婚配一个单词界限,也就是指单词和空格间的地位。例如,
’er\b’ 可以婚配"never" 中的 ’er’,但不克不及婚配 "verb" 中
的 ’er’。
\B 婚配非单词界限。’er\B’ 能婚配 "verb" 中的 ’er’,但不克不及匹
配 "never" 中的 ’er’。
\cx 婚配由x指明的掌握字符。例如, \cM 婚配一个 Control-M 或
回车符。 x 的值必需为 A-Z 或 a-z 之一。不然,将 c 视为一
个原义的 ’c’ 字符。
\d 婚配一个数字字符。等价于 。
\D 婚配一个非数字字符。等价于 [^0-9]。
\f 婚配一个换页符。等价于 \x0c 和 \cL。
\n 婚配一个换行符。等价于 \x0a 和 \cJ。
\r 婚配一个回车符。等价于 \x0d 和 \cM。
\s 婚配任何空白字符,包含空格、制表符、换页符等等。等价于
[ \f\n\r\t\v]。
\S 婚配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 婚配一个制表符。等价于 \x09 和 \cI。
\v 婚配一个垂直制表符。等价于 \x0b 和 \cK。
\w 婚配包含下划线的任何单词字符。等价于’’。
\W 婚配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 婚配 n,个中 n 为十六进制本义值。十六进制本义值必需为确
定的两个数字长。例如, ’\x41’ 婚配 "A"。’\x041’ 则等价
于 ’\x04’ & "1"。正则表达式中可使用 ASCII 编码。.
\num 婚配 num,个中num是一个正整数。对所获得的婚配的援用。
例如,’(.)\1’ 婚配两个一连的不异字符。
\n 标识一个八进制本义值或一个后向援用。假如 \n 之前最少 n
个获得的子表达式,则 n 为后向援用。不然,假如 n 为八进制
数字 (0-7),则 n 为一个八进制本义值。
\nm 标识一个八进制本义值或一个后向援用。假如 \nm 之前最少有
is preceded by at least nm 个获得得子表达式,则 nm 为后
向援用。假如 \nm 之前最少有 n 个获得,则 n 为一个后跟文
字 m 的后向援用。假如后面的前提都不知足,若 n 和 m 均为
八进制数字 (0-7),则 \nm 将婚配八进制本义值 nm。
\nml 假如 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-
7),则婚配八进制本义值 nml。
\un 婚配 n,个中 n 是一个用四个十六进制数字暗示的Unicode字
符。例如, \u00A9 婚配版权符号 (?)。
怎么配置呢 ,问最好的老实百度,问啥都有答案。所以用好搜索引擎是学好的令1个关键,程序会出各样的问题,没有1个人可能会碰到所有的问题,所有就可以问百度这个大家精华的集合了。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 实践是检验自己会不会的真理。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
页:
[1]