java 板


LINE

※ 引述《danielkimo (Daniel)》之铭言: : Dear all, : 小弟透过查语意字典得到这样的字串, 想把查询得到的结果中的所有关系取出来, 如下: : 查询XXX得到{A:1={B},2={C:3={D:4={E}}},5={F}}, 所有的关系如下: : 1(A,B) ; 2(XXX,C) ; 3(C,D) ; 4(D,E) ; 5(A,F) , 其中, 数字表示关系, 字母表示物体 : 本来是想用类似的regex去取, : String input = "{A:1={B},2={C:3={D:4={E}}},5={F}}"; : Pattern pattern = Pattern.compile("[A-Za-z]+\\:[0-9]+\\=\\{[A-Za-z]"); : Matcher matcher = pattern.matcher(input); : while (matcher.find()) : { : System.out.println(matcher.group()); : } : 但因字串是多层次, 一层里面可能还有好几层, : 想用字串切割也没办法, : String input = "{A:1={B},2={C:3={D:4={E}}},5={F}}"; : String[] fragment = input.split(","); : for (String f:fragment) : { : System.out.println(f); : } : 这样就不分内外的,都会被切到, 不知要设计某种DS储存, 还是能透过某个function就能处理呢? : 谢谢 靠杯 我竟然把这个怪需求写出来了 对写compiler太有爱了 就送给你吧 https://gist.github.com/popcornylu/6262db6d8cde191d70f4 印出来是 input: {A:1={B},2={C:3={D:4={E}}},5={F}} [1:A->B] [4:D->E] [3:C->D] [2:A->C] [5:A->F] 因为你要的需求需要一个很阳春的compiler 但是因为阳春 不会建议你用antlr这种tool 就自干吧 首先你要用regex去切token.. (compiler里面叫做scanner) 然後再根据你的language去写rule. 最後再用recursive的方式爬出你要的资料 不过我写得比较简略 很多case没有特别去处理 你自己再去refine吧.. :Q --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.201.41
1F:推 PsMonkey:等等,跪求解释为啥 5 会得 (A,F) 08/04 00:46
2F:→ popcorny:就跟前一篇回文同样的猜测.. 08/04 00:51
3F:推 AI3767:不是 5会得(A,F). 而是5(A,F)或A:5={F} 是已有的事实资料 08/04 01:31
4F:→ AI3767:话说,要写Compiler, 用CompilerCompiler较轻松吧XD 08/04 01:34
5F:推 DeathWatch:天啊太强大了可否请问你这怎麽学的 XD 08/04 10:37
6F:推 danielkimo:已经写得非常棒了!! 感谢 08/04 20:56







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灯, 水草

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

TOP