Ruby 板


LINE

请问各位,目前想使用 Ruby 解决一个问题: 从 bbs 转寄回信箱的文章,其内文会把一些上色的文字, 直接使用控制码表示出来,例如推文会变成这样: # [1;37m推 [33mID1[m[33m:Data1 [m 03/14 02:40 目前的想法是使用 regx 在这些控制码之前都加上\033, 然後就可以使用 puts 印出原本上色後的文字。 目前在这个网页测试了我使用的正规表示法, 从网页里的结果看起来这个正规表示式是有效的: http://rubular.com 我使用的正规表示式是: \[(1;|1|)([3-4][0-9]|)m 好,现在的问题在於使用 gsub 方法後结果不如预期, 所以想请教一下 gsub 的取代方式。 a = "# [1;37m推 [33mID1[m[33m:Data1 [m 03/14 02:40" b = a.gsub /\[(1;|)([3-4][0-9]|)m/, '这里搞不定' 谢谢各位! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.169.179.15
1F:推 kusoayan:a.gsub(/\[(1;|)([3-4][0-9]|)m/, '\033 \1') 这样可吗? 03/14 23:18
2F:→ alog:/\[[\d\;]*m?/ 这样不就好惹 03/14 23:43
3F:→ meld:两位大大,尝试结果如下:首先是简化的算式在网站上确实找到 03/15 00:05
4F:→ meld:了所有的标的,但当我使用 b=match(算式) 的时候发现只能找到 03/15 00:06
5F:→ meld:第一个。然後将算式套入第一位大大的程式码後,跑出来的结果 03/15 00:07
6F:→ meld:033变到後方去了-> 03/15 00:09
7F:→ meld:# [1;37m33 推 [33m33 ID1[m33 [33m33 :Data1 [m33 03/15 00:09
8F:推 mars90226:一二楼的结果真的如你所说,想不懂为甚麽... 03/15 11:38
9F:→ mars90226:试试: b = a.gsub(/\[[\d\;]*m?/) {|m| "\033 #{m}" } 03/15 11:39
10F:推 mars90226:一楼的後面引号用单引号一定会错,要用双引号 03/15 11:43
11F:→ mars90226:只是我用双引号的结果好像还是不对 03/15 11:43
12F:→ mars90226:单引号字串的跳脱字元只支援 "\'" 和 "\\",不能用"\033 03/15 11:45
13F:→ meld:谢谢火星大大,小弟现在觉得说不定是正规表示法本身就怪怪的 03/15 13:24
14F:→ meld:例如如果将算法改为:b = a.match(/\[[\d\;]*m?/). 然後再使 03/15 13:24
15F:→ meld:用 p b 将目前b的内容(非字串)印出来,就会发现结果只有一组 03/15 13:25
16F:→ meld:#<MatchData "[1;37m"> 明明是有效的正规表示式,但找到的 03/15 13:26
17F:→ meld:元素居然只有一个,真的很诡异..... 03/15 13:26
18F:→ meld:最後如果这样搞,连在一起的话是可以的: 03/15 13:31
19F:→ meld:b = a.gsub(/\[[\d\;]*m?/) {|m| "\033#{m}" } 03/15 13:31
20F:→ meld:正规表示法真的是博大精深啊...... = =!还是谢谢各位朋友! 03/15 13:32
21F:推 mars90226:match只会比一次,就跟sub一样 03/15 14:41
22F:→ meld:谢谢火星大大! 03/17 20:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP