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

关于括号的问题

$p = '/<li>(.*)<\/li>/i';        $p = '/<li>.*<\/li>/i';

两个表达式不同的地方在于有无括号,但是输出不一样,这是怎么回事?

正在回答

3 回答

正则表达式中的小括号的作用是对字符进行分组,并保存匹配的文本。与位于小括号之间的模式匹配的内容都会被捕获。个人感觉应该是没有影响的

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

tangle3771757 提问者

我把代码输出的数组改了,当有括号的时候和没有的时候输出的东西不一样。这是为什么呢? 还有,对字符分组意义何在呢?
2016-08-10 回复 有任何疑惑可以回复我~
#2

Joker208 回复 tangle3771757 提问者

正则表达式光看课程上的太少了,这儿有一个基础教程还不错,推荐你看看 http://deerchao.net/tutorials/regex/regex.htm
2016-08-11 回复 有任何疑惑可以回复我~
#3

tangle3771757 提问者

谢谢。
2016-08-11 回复 有任何疑惑可以回复我~

括号表示的是子组,

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

这里的“(”表示子组的开始,“)”表示子组的结束,要匹配<li></li>标签中的数据,应该作为一组数据来匹配

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

举报

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

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

进入课程

关于括号的问题

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