免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
跳转到指定楼层
1 [收藏(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
2 [报告]
发表于 2017-09-12 20:17 |只看该作者
把你的代码放上来,最起码也要把文本内容放上来,才能知道怎么帮你。

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
3 [报告]
发表于 2017-09-14 11:18 |只看该作者
本帖最后由 很宅的男 于 2017-09-14 11:20 编辑

回复 2# 104359176

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

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期: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未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2017-09-14 13:52 |只看该作者
回复 3# 很宅的男

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

don't forget the example

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
5 [报告]
发表于 2017-09-14 13:55 |只看该作者
回复 4# jason680

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

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期: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未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2017-09-14 13:58 |只看该作者
回复 5# 很宅的男

an example or up to you

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
7 [报告]
发表于 2017-09-14 14:03 |只看该作者
回复 6# jason680

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

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期: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未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 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"

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
9 [报告]
发表于 2017-09-14 14:16 |只看该作者
回复 8# jason680

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

论坛徽章:
1
15-16赛季CBA联赛之山东
日期:2019-02-18 23:04:06
10 [报告]
发表于 2017-09-14 21:10 |只看该作者
回复 8# jason680

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP