PHP 正则表达式必须含有 解决必采纳

PHP正则表达式语法简介
正则表达式是个最最令人头疼的东西,每次写每次查,记忆时间过不超过三分钟(可能还是多说的),正则表达式也有几种标准,posix和perl标准等。不只在Perl、Python、Bash、JAVA等语言中使用,通过扩展或升级,几乎所有语言都会涉及,但是格式和标准未必相同,所以一切以测试为准。目前PHP支持以上两种正则表达式。
一、PHP正则基础规则
PCRE规定正则表达式需要使用定界符(/)。所有的语句均写在定界符内,主要&段型&(天缘自己叫法)规则如下:
开头的 ^ 和结尾的 $ 让PHP从字符串开头检查到结尾。
[ 跟 ] 组合用来限制许可输入类型。连续的数字或字母可以用&&&符号连接,如[A-Z] 表示匹配A至Z所有字母,[0-5]表示0-5所有数字,[a-z] 表示a到z所有小写字母,等等。
{ 跟 }组合用来限制小节重复次数,比如 {5,15} 表示前面段可以重复 5-15 次。
( 跟 ) 组合用来合并小节,定义字符串中必须存在的字符或字符串,比如(hello|world)可以匹配hello或world。
(.) 将匹配所有字符,而 [.] 只匹配 &.& 本身。
如下符号,如需匹配本身,必须在其前面增加一个转义字符 \,这些字符包括:
( ) [ ] . * ? + ^ | $ \ /
比如\[表示匹配[符号,\\表示匹配一个反斜杠,以此类推。
二、常用元字符
/&&& 定界符
^&&& 匹配字符串的开始
$&&& 匹配字符串的结束
.&&& 匹配除换行符意外的任意字符
?&&& 零或一个紧接前的字符
*&&& 零或多个紧接前的字符
+&&& 一或多个紧接前的字符
\w&&& 匹配字母或数字或下划线
\s&&& 匹配任意的空白符,所谓空白字符是指:空格、制表符、换页符等
\d&&& 匹配数字
\b&&& 匹配单词的开始或结束
\W&&& \w的反义,即匹配任意非字母,数字,下划线和汉字的字符
\S&&& \s的反义,即匹配任意非空白符的字符
\D&&& \d的反义,即匹配任意非数字的字符
\B&&& \b的反义,即不是单词开头或结束的位置
[x]&&& 匹配x字符,如,[a-z] 所有小写字母,[A-Z] 所有大写字母,[0-9] 所有数字
[^x]&&& 匹配除了 x 之外的任意字符,如 [^abc] 匹配除了 abc 这几个字母之外的任意字符
{3}&&& 3个紧接前的字符
{5,15}&&& 5-15个紧接前的字符
(red|green|blue)&&& Red 或 green 或 blue
三、正则表达用法归纳
天 缘自己总结了一下,正则表达式用途大概有三:
正则替换 && 替换符合某个规则下的字符串
正则提取 && 提取符合某个规则的字符串,这时小节&( )&的用法就尤为重要。
正则验证 && 验证是否符合某个规则,比如位数验证,类型验证、序列合法验证等。
1、正则替换例子:
$str = '/*ddd*/sss';
$str =&preg_replace('[(/*)+.+(*/)]', '', $str);
print_r($str);
这段代码可以替换所有以/*开头并以*/结束的部分为空,也就是批量去除注释。
2、正则提取例子:
$str = '/username/';
preg_match(&/\/\*[\s\S]+?\*\//&,$str,$Arr);
print_r($Arr);
该段代码可以提取$str中的username部分,结果在$Arr[2]中。打印$Arr输出如下:
Array ( [0] =& /username/ [1] =& / [2] =& username [3] =& / )
preg_split 可以将整段字符串按匹配到的正则表达式分割成 1、2或更多字符的多段。比如获取标签,无论是用空格还是逗号分隔的:
$tags = preg_split('/[,]/', 'my,tags,unevenly,spaced');
print_r($tags);
3、正则验证例子:
这个用的最多了,比如验证密码:
preg_match( &/^\d*$/&,$str);
这句话匹配$str是否全是数字。
参考资料:
PHP与正则表达系列之一: PHP 中的正则表达式:
正则表达式说明:
更多文章:,,。
相关文章:&&
相关评论(1):&&
两周内自动登录整数部分是零的最大以为小数与最小一位小数的和是()差是(),积是(),商是() 答案正确必采纳
整数部分是零的最大以为小数与最小一位小数的和是()差是(),积是(),商是() 答案正确必采纳
1 0.8 0.09 9
我有更好的回答:
剩余:2000字
与《整数部分是零的最大以为小数与最小一位小数的和是()差是(),积是(),商是() 答案正确必采纳》相关的作业问题
0.9+0.1=1;0.9-0.1=0.8;答:和是 1,差是 0.8.故答案为:1,0.8.
整数部分是0的最大一位小数与最小一位小数的和是( 1),差是(0.8 ),积是(0.09 ),商是( 9) 两个数字分别为0.9和0.1
设整数部分为a,则较大的数为a+0.99,较小的数为a+0.001,大数减小数,即(a+0.99)-(a+0.001)=0.989.
①由7、9、6和小数点组成的最大两位小数是9.76,最小两位小数是6.79;②(9.76+6.79)÷2,=16.55÷2,=8.275.
1.最大:70.704 最小:70.695 差:0.0092.拼成长方体后,表面积增加了两个高乘半径.半径是4cm,那么高就是16/2/4=2(厘米)体积就是4*4*3.14*2=100.48(立方厘米)再说一句,这是两道题.
近似值为90.90的最大三位小数是90.904和最小三位小数是90.895,两数相差0.009
23&#&#&#&#&#&#个最大63•2 最小23•6 加起来86•8
0.99-0.01=0.98
70.704≈70.70,70.695≈70.70,所以70.704-70.695=0.009;故答案为0.009.
近似值是0.60米的最大三位小数是(0.604)最小三位小数是(0.595),近似值是0.6米的最大三位小数是(0.649)最小三位小数是(0.550),我认为(0.60)表示的精确度高.
整数部分是最大的两位数的最小一位小数是99.1,最小的三位数是100,它们相差:100—99.1=0.9
0.1*0.9=0.09
^(?!0+(?:\.0+)?$)\d+(?:\.\d{1,2})?$ 再问: 不行啊~01.23仍然可以通过~ 再答: ^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$
两位小数,所以小数点一定在第二个位置.不读出0,所以小数点不能在第一和第三位置,所以0一定在第四个位置.要最小的的数,所以1在第一个位置,2在第三个位置.1.20=1.2,可以读作“一点二”
8×8==12.612.6÷2=6.30.7×0.9=6.30.8×0.8=6.48.7×8.9=76.43一位小数为8.86.4-6.3=0.1一位小数为8.78.8×8.7=76.56
(1) 20.79(2) 702.9 再问: 在帮忙解决下2道,谢谢了。 小于0.29的三位小数是 大于9的最小的三位小数是 再答: 小于 0.29 的最大三位小数是 0.289 , 大于 0.9 的最小的三位小数是 0.901
错,比如0.9小于0.99JS和PHP的正则表达式的区别_百度知道
JS和PHP的正则表达式的区别
我有更好的答案
总体上,PHP的正则比标准javascript的要强大。PHP有两套正则库,一是posix兼容库(php5.3之前版本可用),而是perl兼容库(主力库)perl兼容库中支持而js正则不支持的:1、支持(?&!和(?&=回程断言2、许多预置字符类(:alnum:)3、支持组标识(?&&4、支持子组同名(?|5、支持独立子组(?&6、支持条件子组(?()7、支持递归子组(?R) 8、支持本地编码,js只支持unicode9、修正器更多10、等等等等细节上的丰富。总之,js的正则库在php正则面前显得只是一个简约的基础库。 编程实现是细节活,粗枝大叶的结果就是问题多多。一定要弄清楚
采纳率:73%
来自团队:
正则规则没有什么区别的,只是使用方式不一样而已,正则网上一堆,我觉得没有必要弄那么清楚!
没什么区别!
为您推荐:
其他类似问题
您可能关注的内容
正则表达式的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 3208|回复: 10
正则表达式支持库匹配中文字符与
阅读权限140
结帖率: (26/26)
补充内容 ( 04:03):
卧槽不小心发出去了,,就是正则表达式支持库(RegEx.fne)和精易的正则表达式类(COM对象)之间有一些不通用的地方
补充内容 ( 04:03):
但是正则表达式支持库确实快了很多倍,所以还是希望能完全替代掉
补充内容 ( 04:04):
这儿有个匹配中文字符([\u4e00-\u9fa5])的表达式,正则表达式支持库就很难输出正确结果,求原理及解决办法.........
补充内容 ( 04:04):
附件只能传楼下了.......
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25PHP正则表达式如何反向引用?_百度知道
PHP正则表达式如何反向引用?
&?php$str = &/120711ndvh1pkk1mmevy18.jpg&;$mode = &/(\d+)\/(\d+)\/(\w+)\.(\w+)/i&;$replace = &\1&;echo preg_replace($mode,$replace,$str);?&正确是写法应该是?
我有更好的答案
你好你的写的正则是对的,可以匹配,就是你匹配后输出什么有问题,正确写法是这样的:$replace = &\$1/$2&;加$1是第一个匹配的(\d+),就是说你匹配到了,你要输出什么,怎么输出写错了。希望能帮助到你...
谢谢,可以一次匹配到所有的字符吗?按照你这些写法,需要$replace = &\$1/$2/$3.$4&;才能把上面的字符匹配完成
你要是一次性的话,正则就不能拿样写了,不知道你的目的是什么,图片地址你要匹配后做什么,可以(.*?)匹配全部,用替换或拼接处理,做成你要的效果,看看是否能满足你的要求
比如这个有很多个数据abc efg ;22/120711ndvh1pkk1mmevy18.jpg ,然后我需要匹配出上面的图片路径,然后加上后缀&XXX&
你图片路径上怎么会有那么多无用的字符,你拔别人的页面吗?就是说你只要图片的名字,你可以只匹配以.jpg或.png结尾的最后一个/开始中间的字母
谢谢,我只是想找一个例子学一下反向引用
采纳率:55%
来自团队:
用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。如果pattern和replacement 都是数组,每个pattern使用replacement中对应的 元素进行替换。如果replacement中的元素比pattern中的少, 多出来的pattern使用空字符串进行替换。
为您推荐:
其他类似问题
正则表达式的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 js正则表达式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信