请教一个正则表达式的意思

顽固风流人物 2007-05-21 09:34:15
((?<=\d)\d{3})*\b

今天在看正则表达式的时候看上面有这个例子,可是没解释,我看了半天还是没看明白,测试了几个例子也没明白,请教各位老大了

我写了一个例子如下:
<?php
preg_match_all("/((?<=\d)\d{3})*\b/","123456789",$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
?>


结果如下:
Array
(
[0] => Array
(
[0] =>
[1] => 23456789
[2] =>
)

[1] => Array
(
[0] =>
[1] => 89
[2] =>
)

)


对这个表达式,我看不明白的地方有两个
第一个是那个{3}
那个{3}不是跟在分组后面表示重复三次的么?怎么跟在\d后面表示重复数字三次?
第二个里面那个*
*不是跟在字符后面的么?跟在分组后面有什么特殊意义么?


我查了一圈没找到,请教各位老大了
...全文
250 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice_berg16 2007-05-22
  • 打赏
  • 举报
回复
你问的这两个符号对单个字符和分组都是有效的.
willko 2007-05-21
  • 打赏
  • 举报
回复
其实不明白你想问什么
1.\d{3} 匹配3次\d
2.(xxx)* 匹配0次或多次子选择器的内容

你那个结果是错的吧
应该是789才对啊

21,886

社区成员

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

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