忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1072 | 回复: 5

怎么替换匹配到的字符串 [复制链接]

论坛徽章:
0
发表于 2017-09-14 11:12 |显示全部楼层
      大家好,请教大家一个问题,比如我有一个文本,里面有很多字母,格式如下:
           hello world nice well...
      然后我想把匹配到的world替换成其他字符串,如果不用数组的话要怎么实现呢?就是匹配到直接修改这个字符串,谢谢大家了

论坛徽章:
120
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2017-09-14 11:31 |显示全部楼层
回复 1# 很宅的男

>>然后我想把匹配到的world替换成其他字符串...

s/world/其他字符串/g;

论坛徽章:
0
发表于 2017-09-14 11:43 |显示全部楼层
本帖最后由 很宅的男 于 2017-09-14 11:44 编辑

回复 2# jason680

     我是这么写的
  1. if(/\s+(world)\s+/)
  2. {
  3.        $tmp=$1;
  4.        $tmp=~s/$tmp/me/;
  5. }
复制代码
  可是一直有问题,请您指教

论坛徽章:
0
发表于 2017-09-14 12:03 |显示全部楼层
powershell正则和perl正则道理相同,也都用$。各种shell有很多相通之处。

powershell代码:
'hello world      nice well'      -replace       '\s+world\s+','当里个当'

返回:
hello当里个当nice well

论坛徽章:
120
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2017-09-14 12:32 |显示全部楼层
回复 3# 很宅的男


if(/\s+(world)\s+/)
{
       $tmp=$1;
       $tmp=~s/$tmp/me/;
}

change to

  s/world/me/g;

论坛徽章:
0
发表于 2017-09-14 13:48 |显示全部楼层
回复 5# jason680

您好,还想请教您一个问题,多谢啦,http://bbs.chinaunix.net/forum.p ... ;extra=#pid24648651
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP