为了账号安全,请及时绑定邮箱和手机立即绑定

关于正则表达式name:[.+]表示看不懂啊

刚刚有个同学告诉我这个正则表达式可以写成name:[.+]但是表示看不懂

如果是name:[.+]的话,匹配到的不应该是name:steven jobs吗

而且preg_match不是不是只得到一个结果集吗???

那$match[1]又怎么会是steven jobs呢??

求老师解答,最好把圆括号的知识点也讲讲吧

正在回答

2 回答

我认为只有整个正则表达式得到匹配的前提下,才会将符合( )的内容放到$1、$2里,刚刚试验了一下,是这样的,我也是刚学正则,不太难吧

0 回复 有任何疑惑可以回复我~
#1

慕函数3178513 提问者

非常感谢!
2017-02-26 回复 有任何疑惑可以回复我~

我不是老师,给你讲一下,按你的思路,name:(.+)才是对的,

  1. name:[.+]本身是错的,因为[]括号只会匹配一个字符,name:[.]+还差不多;

  2. preg_match是得到一个结果,得到的结果放在$0里,匹配到的其他()里的内容放在$1,$2……里;

  3. 此题最后的结果要求在$1里,必须要有(),所以匹配表达式可以写为name:(.+)

0 回复 有任何疑惑可以回复我~
#1

慕函数3178513 提问者

我打错了应该是name:(.+),如果照你的意思,如果字符串里边有好多个符合()的字符串,$1,$2都会有相应的值,如果可以匹配到很多字符串,是不是每次比较的时候也比较前边那部分啊比如name: 刚刚接触正则表达式,不大懂
2017-02-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181823    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

关于正则表达式name:[.+]表示看不懂啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信