aardio 官方社区

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 13154|回复: 10

我想同时替换两次

[复制链接]

4

主题

8

回帖

61

积分

一级会员

积分
61
发表于 2011-5-21 22:11:20 | 显示全部楼层 |阅读模式
  1. import io;
  2. import string;
  3. str= "123456eeetttt";
  4. string.save("c:\qq.txt",str )
  5. str=string.replace(str,"123456","aaa");
  6. str=string.replace(str,"tttt","1111");//这种方法只能替换一次,我想同时替换123456和tttt
  7. import console
  8. console.log(str);
  9. console.pause();

复制代码

20

主题

128

回帖

923

积分

三级会员

积分
923
发表于 2011-5-21 22:46:04 | 显示全部楼层
可以吗,可以吗?可以吗?可以吗?

我觉得,这个得自己写库

点评

完全可以  发表于 2011-5-21 22:50

117

主题

1103

回帖

6572

积分

六级会员

积分
6572
发表于 2011-5-21 22:49:31 | 显示全部楼层
str="123456eeetttt";

sss=string.replace(str,
"<123456>|<tttt>",function(s){
   
if(s="123456"){
        
return "aaa";
    }
   
else{
        
return "1111";
    }
})

import win;
win.msgbox(sss,
"aardio");

4

主题

8

回帖

61

积分

一级会员

积分
61
 楼主| 发表于 2011-5-22 07:11:05 | 显示全部楼层
学到了.............

27

主题

646

回帖

4138

积分

超级版主

积分
4138
发表于 2011-5-22 07:19:40 | 显示全部楼层
str="123456eeetttt";

str = string.replace(
    str,
   
"<123456>|<tttt>",
   
//替换内容可以是字符串,也可以是一个函数,也可以象下面这样,是一个table
    {
        [
"123456"] = "aaa";
        [
"tttt"] = "1111" ;
    }
)

import console
console.log( str )

点评

真棒: 5.0
目的就是给予一个值替换 懂了 谢谢  发表于 2011-5-22 15:03
真棒: 5
我也学习了  发表于 2011-5-22 08:24

4

主题

8

回帖

61

积分

一级会员

积分
61
 楼主| 发表于 2011-5-22 07:27:03 | 显示全部楼层
帮助文档里面好像没这么说;
都是实践来的吧....
学到了.....更多了......

20

主题

128

回帖

923

积分

三级会员

积分
923
发表于 2011-5-23 01:20:08 | 显示全部楼层
replace=function(sss,s,j){

   for(i=1;#s;1){
        sss = string.replace(sss,s[ i ],j[ i ])
   }
   
   return sss;
}
str = "123456eeetttt"
ss = replace(str,{"123456";"tttt"},{"aaa";"1111"})
import console
console.log(ss)


replace=function(sss,s){

   for(i=1;#s;1){
        a,b = string.match(s[ i ],"(.*)\@\#(.*)")
        sss = string.replace(sss,a,b)
   }
   
   return sss;
}
str = "123456eeetttt"
sj = {}
table.push(sj,"123456@#aaa")
table.push(sj,"tttt@#1111")
ss = replace(str,sj)
import console
console.log(ss)

6

主题

57

回帖

387

积分

荣誉会员

积分
387
发表于 2011-5-23 09:10:28 | 显示全部楼层
原来可以这样子,平时很少用,真不知道

5

主题

76

回帖

457

积分

二级会员

积分
457
发表于 2011-5-23 14:10:02 | 显示全部楼层
本帖最后由 namwonsta 于 2011-5-23 14:20 编辑

挺一下xudhrh,为了使大家充分认识到这段程序的价值,我注释和修改了一下他的一段code,供大家参考讨论。

replace=function(str,config){
    for(i=1;#config;1)
        str = string.replace(str,string.match(config[ i ],"^(.+)@#(.*?)$")); //@#可自定义也可机器学习获得,然后传参拼接

    return str;
}

str = "123456eeetttt1234567@#"

设置 = {} //为交互准备一个表
table.push(设置,"\d+@#aaa") //人类信息1
table.push(设置,"t{4}@#1111") //人类信息2
table.push(设置,"\@#@#")  //人类信息3

ss = replace(str,设置)
import console
console.log(ss)

48

主题

542

回帖

3328

积分

五级会员

积分
3328
发表于 2012-5-22 16:25:31 | 显示全部楼层
namwonsta 发表于 2011-5-23 14:10
挺一下xudhrh,为了使大家充分认识到这段程序的价值,我注释和修改了一下他的一段code,供大家参考讨论。
...

真实看不懂,要努力很久啊

4

主题

852

回帖

4689

积分

荣誉会员

积分
4689
发表于 2012-5-22 19:08:58 | 显示全部楼层
str="123456eeetttt";

sss = string.replace(str,
"<123456>|<tttt>",{
    [
"123456"] = "aaa";
    [
"tttt"] = "1111"
} )

import win;
win.msgbox(sss,
"aardio");
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-6-12 10:25 , Processed in 0.091834 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表