免费注册 查看新帖 |

Chinaunix

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

关于正则表达式替换的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-08 10:04 |只看该作者 |倒序浏览
比如有
$a = '11a22a33a44a';
想用全局替换,把[1-9]{2},也就是11,22,33,44,替换成它们的平方。
最终结果是'121a484a1089a1936a'
请问应该怎么写正则表达式啊?或者出了拆开合并之外,还有什么办法吗?

s///g的话,可以在替换内容里面用函数吗?
我用$a =~ s/([1-9]{2})/&aaa($1)/g;
后面的替换内容中只能当作字符串处理的,可以让这个函数计算吗?

[ 本帖最后由 Strange 于 2006-6-8 10:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-08 11:40 |只看该作者
可以的,s/// 的修饰符 e 可以把后面的替换项当作一个表达式来求值。
这样就可以了:
  1. s/[1-9]{2}/$& * $&/eg;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP