- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
正那么表达式入门经典
正那么表达式到底是什么关于正那么表达式起源〔请自己查阅相关资料!〕规那么表达式,字符串规那么表达式我们用过的最简单的规那么:文件查找通配符:“?”和“*”正那么表达式是对一个字符串操作与运算表达式,能由一定标准的解析程序得出运算结果,从而实现字符串匹配与替换等操作的简化。
第一个正那么表达式从英文小说中查找hi但不能把him,high,history也找到,可以\bhi\b\b表示的是一个空格,如果后面不一定有空格,那么,\bhi\w,那就找到了him,high,history假设你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。其中,.*连在一起就意味着任意数量的不包含换行的字符。
第二个正那么表达式三位区号八位机号的号码0\d\d-\d\d\d\d\d\d\d\d其中\d指的是数字可以简化为:0\d{2}-\d{8}{}中表示的是重复的次数。
正那么表达式的测试PHP程序员最好用的测试工具是:mysql主要因为:JS使用的是UNIX正那么表达式,PHP同时支持PERL和UNIX正那么表达式,而MYSQL也是UNIX正那么表达式。但使用MYSQL测试,最好使用MYSQLFRONT,NAVCAT这样,比PHPMYADMIN中,SQL查询提交后SQL语句不再显示要好一些。需要注意的是,SQL语句中需要使用双引号。即让正那么表达式在双引号中间。要测试匹配的字符串也要在双引号中。例如:mysqlselect“fonfo”REGEXP“^fo$”;-0〔表示不匹配〕
mysqlselect“fofo”REGEXP“^fo”;-1〔表示匹配〕
可以看出“fonfo”REGEXP“^fo$”实际是一个运算表达式。关于MYSQL与正那么表达式,可以参见:MySql正那么表达式功能的巧用
我们走到哪了?我们现在有以下正那么表达式的元字符\b\w\d.*{}这些都是什么意思?
更进一步\d+匹配1个或更多连续的数字。下限是至少一次。而*的下限是0次再例:\b\w{6}\b匹配刚好6个字母/数字的单词。
常用的元字符代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束
类型匹配——PERL与POSIXPOSIX:[:upper:]:匹配所有的大写字母[:lower:]:匹配所有的小写字母[:alpha:]:匹配所有的字母[:alnum:]:匹配所有的字母和数字[:digit:]:匹配所有的数字[:xdigit:]:匹配所有的十六进制字符,等价于[0-9A-Fa-f][:punct:]:匹配所有的标点符号,等价于[.,?!;:]PERL:\n换行符newline〔’0A〕\r回车符carriagereturn〔’0D〕\t制表符tab〔’0〕\d任一十进制数字\s任一空白字符\w任一“字”〔可见的〕的字符
匹配QQ号:^\d{5,12}$因为QQ号最少是5个数字,目前最长是12位数字{5,12}这里表示了从多少到多少
字符转义要匹配正那么表达式中用的字符,如\这就需要转义,应当写成\\类似,我们还有:\.\*\+等等
常用的限定符代码/语法 说明* 重复零次或更屡次+ 重复一次或更屡次? 重复零次或一次{n} 重复n次{n,} 重复n次或更屡次{n,m} 重复n到m次
字符范围[aeiou] 匹配任何一个英文元音字母[.?!] 匹配标点符号(.或?或!)所以[0-9]代表的含意与\d就是完全一致同理[a-z0-9A-Z_]也完全等同于\w〔当然,这种等同只能仅考虑英文〕错误的QQ号改正:^[1-9]{1}\d{4,11}$
反义反义,有定义的元字符大写,即是反义,同样,字符集前加上^也是反义。所以:代码/语法 说明\W 匹配任意不是字母,数字,下划线,汉字的字符\S 匹配任意不是空白符的字符\D 匹配任意非数字的字符\B 匹配不是单词开头或结束的位置[^x] 匹配除了x以外的任意字符[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
你可以写了吗?\(?0\d{2}[)-]?\d{8}这个表达式,,或,或等都不出错但是:010(022不出错,怎么办?提示:语法分组问题!
并列用|表示或者,把每一个规那么分开,用|合并为一组共用。0\d{2}-\d{8}|0\d{3
文档评论(0)