把ip最后一位数字替换成星号

liujianliang 2013-07-23 03:59:19
echo preg_replace('/(?<=\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}/','*','213.133.241.45');
怎么就报错呢?
...全文
356 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
手册中 Perl 兼容正则表达式函数--模式语法 一节有明确的论述
引用 9 楼 u011432551 的回复:
[quote=引用 3 楼 xuzuning 的回复:] php 正则中,断言必须是定长的
echo preg_replace('/((?:\d{1,3}\.){3})\d{1,3}/','$1*','213.133.241.45');
213.133.241.*
什么是断言 什么又是断言必须是定长的[/quote]
刘兆俊bill 2013-07-24
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
php 正则中,断言必须是定长的
echo preg_replace('/((?:\d{1,3}\.){3})\d{1,3}/','$1*','213.133.241.45');
213.133.241.*
什么是断言 什么又是断言必须是定长的
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
ip 的每一节是不定长的,所以在 php 中无法写 或许在以后的版本中可以,至少在 5.5 之前不可以
liujianliang 2013-07-24
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
{1,3} 是最少1个最多3个,就是可以是 1、2、3 之一 这可不是“定长”哦
用断言格式应该怎么写?
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
{1,3} 是最少1个最多3个,就是可以是 1、2、3 之一 这可不是“定长”哦
liujianliang 2013-07-23
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
php 正则中,断言必须是定长的
echo preg_replace('/((?:\d{1,3}\.){3})\d{1,3}/','$1*','213.133.241.45');
213.133.241.*
我不都指定长度了么
ohmygirl 2013-07-23
  • 打赏
  • 举报
回复
是最后一位数字还是最后的.后的所有数字。 如果是后者,看斑竹的代码 如果是前者: echo preg_replace('/((?:\d{1,3}\.){3}\d*)\d/','$1*','213.133.241.211');
xuzuning 2013-07-23
  • 打赏
  • 举报
回复
php 正则中,断言必须是定长的
echo preg_replace('/((?:\d{1,3}\.){3})\d{1,3}/','$1*','213.133.241.45');
213.133.241.*
木目子 2013-07-23
  • 打赏
  • 举报
回复
(?这儿错了
木目子 2013-07-23
  • 打赏
  • 举报
回复
echo preg_replace('#\d+$#','*','213.133.241.45');

21,887

社区成员

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

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