查看: 1833|回复: 3

[已经解决] 请教一个脚本问题

[复制链接]
梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
发表于 2010-8-29 09:10:50 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 赛露休斯 于 2010-8-29 09:22 编辑

比如现在有一个记事本asdf.txt,上面写有
64gdesh8tk8
s6g845g9j5
2w8d7es,fyvhr

我想用脚本把 s 以及 s 后面的整行内容清空(s前面的内容不变),如果s后面跟着标点符号 "," 的这行则不做处理,最后替换原来的文本。

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-8-29 09:24:02 | 显示全部楼层
BOM什么的请无视他 = =多出来的空行什么的也请无视他 = =
  1. s = "64gdesh8tk8
  2. 12345678s6g845g9j5
  3. s2345678
  4. 2w8d7es,fyvhr"
  5. s.gsub!(/(?!s,(.+?)\n)s(.+?)\n/) { "\n" }
  6. print s
  7. exit
复制代码

点评

= =b~II姐,正则很好用的,你应该多看看~~~  发表于 2010-8-29 09:43
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

旅之愚者

梦石
0
星屑
560
在线时间
814 小时
注册时间
2007-7-28
回帖
2121

贵宾

发表于 2010-8-29 09:33:10 | 显示全部楼层
本帖最后由 六祈 于 2010-8-29 10:41 编辑

file = File.open("asdf.txt" , "r")
a = file.read
file.close
b = a.gsub(/s[^,].+|s$/ , "")
file = File.open("asdf.txt" , "w")
file.write(b)
file.close

好吧紫苏大人~~~已修改,另外\.+这种错误真的好2呀。。。愚者撞墙去了~~~~~~

点评

貌似多了个 `\' o.o 另外这样不能删掉单个一行的 s 呢  发表于 2010-8-29 10:07
表示不该用\w+,应该用.+。。。我也翻正则去了= =  发表于 2010-8-29 09:45
= =b 我是不是应该承认我没有看F1的字符范围部分……因为否定先行在前面(喂)  发表于 2010-8-29 09:40

评分

参与人数 1星屑 +300 收起 理由
IamI + 300 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2010-8-29 09:37:55 | 显示全部楼层
谢谢楼上两位,问题已解决^_^
最近在研究XAS
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部