求助, Java 按照特定格式读取字符串 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nevin47
V2EX    Java

求助, Java 按照特定格式读取字符串

  •  
  •   nevin47 2016-08-23 15:20:40 +08:00 via Android 3048 次点击
    这是一个创建于 3418 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个日志分析工具,需要对日志文本进行格式化拆分

    例如有一系列 AA,BB,CC:DD:EE:FF,GG 类型的文本,用户可以提供这种格式,有没有方法像 CPP 一样把 AA-GG 分别存入对应的字符串数组中呢?

    目前只查到了正则的方法,但是让用户写正则实在太不友好了,不知道万能的 V 友们有没有什么建议

    7 条回复    2016-08-24 23:34:56 +08:00
    nevin47
        1
    nevin47  
    OP
       2016-08-23 15:55:45 +08:00 via Android
    每人么
    miao1007
        2
    miao1007  
       2016-08-23 16:02:05 +08:00 via Android
    regex group ,为什么要让用户写正则,你写不就可以了
    nevin47
        3
    nevin47  
    OP
       2016-08-23 16:13:04 +08:00 via Android
    @miao1007 因为格式经常会变,代码里面不能把正则写死,而是要去读取用户给的格式描述
    miao1007
        4
    miao1007  
       2016-08-23 16:21:01 +08:00 via Android
    可以仿照 yyyymmdd 的格式写一个
    inoris
        5
    inoris  
       2016-08-23 22:17:54 +08:00
    如果你说的「像 C++ 一样」指的是 scanf 的话,应该不可以,因为 Java 没有指针,所以类似 scanf("format", args...) 这种形式的方法是不存在的。

    想了想似乎 Java 自带的唯一满足要求的就是正则了。同意 @miao1007 的观点,如果想对用户友好的话就自己写一套匹配规则吧。
    nevin47
        6
    nevin47  
    OP
       2016-08-23 23:38:56 +08:00 via Android
    @inoris 看样子只能自己封装一套了。。
    leaves615
        7
    leaves615  
       2016-08-24 23:34:56 +08:00
    @nevin47 求开源
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3128 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:12 PVG 08:12 LAX 16:12 JFK 19:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86