免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1379 | 回复: 5
打印 上一主题 下一主题

[正则表达式] 请教:这个正则表达式怎么写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-03 15:42 |只看该作者 |倒序浏览
我把问题归纳了一下,是这样的:
如果一个字符串前面有另外两个字符串(aa或者bb)之一,
就把它替换成另外一个字符串
而字符串aa和bb保留
我试了很多次,结果都把aa或bb替换了

[ 本帖最后由 HonestQiao 于 2005-11-4 15:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-11-03 16:32 |只看该作者
if( eregi("^aa",$zfc)|| eregi("^bb",$zfc))
{用函数替代}

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2005-11-03 20:58 |只看该作者
  1. $strSource = "bb1";
  2. $strResult = preg_replace('/^(aa|bb)(.+?)$/', 'cc$2', $strSource);
  3. echo $strResult;
复制代码

论坛徽章:
0
4 [报告]
发表于 2005-11-04 00:22 |只看该作者
原帖由 HonestQiao 于 2005-11-3 22:58 发表
  1. $strSource = "bb1";
  2. $strResult = preg_replace('/^(aa|bb)(.+?)$/', 'cc$2', $strSource);
  3. echo $strResult;
复制代码


应该是


  1. $strSource = "bb1";
  2. $strReplace = "replaced"; // this line's added
  3. $strResult = preg_replace('/^(aa|bb).+?$/', "\$1{$strReplace}", $strSource); // this line's changed
  4. echo $strResult;
复制代码


吧。

若想保留 aa 或者 bb。

[ 本帖最后由 dz902 于 2005-11-4 02:25 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
5 [报告]
发表于 2005-11-04 11:24 |只看该作者
[quote]原帖由 dz902 于 2005-11-4 00:22 发表


应该是


  1. $strSource = "bb1";
  2. $strReplace = "replaced"; // this line's added
  3. $strResult = preg_replace('/^(aa|bb).+?$/', "\$1{$strReplace}", $strSource); ... [/quote]

  4. 偶,看错了LZ的要求:

  5. [code]
  6. <?php

  7. // --------------------------------------------------------------------------
  8. // File name   : 文件名称.php
  9. // Description : 文件说明
  10. // Requirement : PHP4 (http://www.php.net)
  11. //
  12. // Copyright(C), HonestQiao, 2005, All Rights Reserved.
  13. //
  14. // Author: HonestQiao (honestqiao@hotmail.com)
  15. //
  16. // --------------------------------------------------------------------------
  17. $strSource = "aa";
  18. $strReplace = "replaced";
  19. $strResult = preg_replace('/^(aa|bb)(.+?)$/', "$1$strReplace", $strSource);
  20. echo $strResult;

  21. $strSource = "bb";
  22. $strReplace = "replaced";
  23. $strResult = preg_replace('/^(aa|bb)(.+?)$/', "$1$strReplace", $strSource);
  24. echo $strResult;

  25. $strSource = "aa1";
  26. $strReplace = "replaced";
  27. $strResult = preg_replace('/^(aa|bb)(.+?)$/', "$1$strReplace", $strSource);
  28. echo $strResult;

  29. ?>
复制代码

  1. ---------- PHP代码调试 ----------
  2. Content-type: text/html
  3. X-Powered-By: PHP/4.3.10

  4. aa
  5. bb
  6. aareplaced
  7. 输出完成 (耗时 0 秒) - 正常终止
复制代码

论坛徽章:
0
6 [报告]
发表于 2005-11-05 22:01 |只看该作者
preg_replace("/(?<=aa|bb)test/","ok","aatest,bbtest");
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP