求解一个php正则表达式的组合

高级网吧管理员 2012-01-20 09:16:20
(.*?) 这个匹配是是任意多个字符 为什么不直接(*?)
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 solio5 的回复:]
这个例子好精髓!学习了

引用 3 楼 jsbba 的回复:

引用 2 楼 wsy87217 的回复:
你是想说为什么不用“.*”吧?
看下面例子:


PHP code


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab



$pattern是……
[/Quote]
$pattern2 = '/a.?b/'; 为什么不这样呢?
godsolio 2012-01-22
  • 打赏
  • 举报
回复
这个例子好精髓!学习了
[Quote=引用 3 楼 jsbba 的回复:]

引用 2 楼 wsy87217 的回复:
你是想说为什么不用“.*”吧?
看下面例子:


PHP code


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab



$pattern是贪婪模式,$pattern2是非贪婪模式。
贪婪模式就是最……
[/Quote]
wsy87217 2012-01-21
  • 打赏
  • 举报
回复
你是想说为什么不用“.*”吧?
看下面例子:


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab


$pattern是贪婪模式,$pattern2是非贪婪模式。
贪婪模式就是最可能多的匹配,如“a.*b”,这里的“.*”就会把字符串中的“aba”都匹配到。
但非贪婪模式就是尽可能少的匹配,如上面例子,它匹配出的最短的一个以a开头,以b结束的字符串段。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wsy87217 的回复:]
你是想说为什么不用“.*”吧?
看下面例子:


PHP code


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab



$pattern是贪婪模式,$pattern2是非贪婪模式。
贪婪模式就是最可能多的匹配,如“a.*b”,这里的“.*”就……
[/Quote]

谢谢你 $pattern2 = '/a.?b/'; 为什么不这样呢?
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wsy87217 的回复:]
你是想说为什么不用“.*”吧?
看下面例子:


PHP code


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab



$pattern是贪婪模式,$pattern2是非贪婪模式。
贪婪模式就是最可能多的匹配,如“a.*b”,这里的“.*”就……
[/Quote]

谢谢你 $pattern2 = '/a.?b/'; 为什么不这样呢?
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wsy87217 的回复:]
你是想说为什么不用“.*”吧?
看下面例子:


PHP code


$str = 'aabab';
$pattern1 = '/a.*b/'; //匹配出aabab
$pattern2 = '/a.*?b/'; //匹配出aab



$pattern是贪婪模式,$pattern2是非贪婪模式。
贪婪模式就是最可能多的匹配,如“a.*b”,这里的“.*”就……
[/Quote]

谢谢你 $pattern2 = '/a.?b/'; 为什么不这样呢?
asasdaf 2012-01-20
  • 打赏
  • 举报
回复
. 匹配除换行符以外的任意字符
* 重复零次或更多次
所以是.*是任意多个字符
? 重复零次或一次
所以单独的*?没用,建议多看看正则的知识吧

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧