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

ChinaUnix.net

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

请教一个字符串替换的问题 [复制链接]

论坛徽章:
0
发表于 2017-09-12 14:16 |显示全部楼层
大家好,请教大家一个问题,我现在有一个文本,格式如下:
   text=“”
   text=“”
   text=“”
   ...
   我有另外一个文本,我现在想把另外一个文本的数值填到上面的“”中,我自己想了个办法就是用两个数组,然后逐个赋值这样,不过一直通不过,请教各位有没有什么好方法呢?多谢各位啦!

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
发表于 2017-09-12 20:17 |显示全部楼层
把你的代码放上来,最起码也要把文本内容放上来,才能知道怎么帮你。

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

回复 2# 104359176

     其实文本就是我给的那个样子,文本里面每行都是这样的,只是我需要把另一个数组里面的元素从前到后填到这个文本每行的text里面去。     比如数组里面是(1,2,3),那完成后文本就变成了:
      text="1"
      text="2"
      text="3"
      ....

论坛徽章:
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 13:52 |显示全部楼层
回复 3# 很宅的男

1. input file/data
2. procedure
3. output file/data

don't forget the example

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

您好,整个文本和程序比较大,这个是其中的一个问题,全放上来不太方便,其实就算看了文本程序,跟我描述的也是一样的

论坛徽章:
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 13:58 |显示全部楼层
回复 5# 很宅的男

an example or up to you

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

您好,其实就是我的文本里面有一堆如下格式的内容:      text=""
   text=""
   text=""
   ...
   一行一个这样子
   然后我需要将一个数组比如@arr=(1,2,3)的值按顺序填入到“”里面,最后文本就变成了:
   text="1"
   text="2"
   text="3"
   ...
   我这是一个比较复杂的任务中遇到的一个问题,我自己在这一块的处理方法是匹配到每个“”,然后保存到一个新的数组比如@tmp中,然后遍历数组,让@tmp的值等于@arr,但是一直有问题,所以想请教下您这个有什么比较好的方法吗?

论坛徽章:
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 14:09 |显示全部楼层
回复 7# 很宅的男

$ cat FILE
text=""
text=""
text=""

$ perl -pe '
BEGIN{
  @arr=(1,2,3)
}
{
  if(m/""/){
    $new=shift @arr;
    s/""/"$new"/}
}' FILE
text="1"
text="2"
text="3"

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

哇,太好了!多谢您提供的方法,我用shift解决了问题,看来还有好多东西要学习,真的非常感谢您

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

  您好,再请教你一个问题,shift一次只能从头部取出一个元素,如果一次取两个应该怎么弄呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP