求助,甲方的奇葩需求(不暴露源码的情况下 把甲方写的正则方法导进去) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
a5401017
V2EX    程序员

求助,甲方的奇葩需求(不暴露源码的情况下 把甲方写的正则方法导进去)

  •  
  •   a5401017 2019-11-13 09:41:10 +08:00 3547 次点击
    这是一个创建于 2168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:有诸多种短信,需要把有用的信息用正则给匹配出来,然后存储 甲方需求:鉴于短信格式多变,由甲方自己写正则去匹配(甲方不提供接口服务,必须在我们源代码中写) 问:如何在不暴露源码的情况下 把甲方写的正则方法导进去

    第 1 条附言    2019-11-13 10:25:48 +08:00
    可能小白 没遇到过那些更奇葩的需求
    谢谢各位大大提供的思路
    第 2 条附言    2019-11-13 10:51:37 +08:00
    结帖,跟客户多次沟通 提供接口解决
    jswxg
        1
    jswxg  
       2019-11-13 09:48:45 +08:00
    可以做个后台让甲方在里面维护正则,代码里读取正则并执行匹配。
    ghostheaven
        2
    ghostheaven  
       2019-11-13 09:48:59 +08:00 via Android
    配置文件或者环境变量?
    x2016
        3
    x2016  
       2019-11-13 09:50:19 +08:00
    做个维护界面, 读取正则执行匹配
    a5401017
        4
    a5401017  
    OP
       2019-11-13 09:52:14 +08:00
    @jswxg
    @x2016
    就是在正则存储到数据库里,匹配的时候 去读数据库?
    abeholder
        5
    abeholder  
       2019-11-13 09:55:10 +08:00
    已经算良心甲方了好么,还给提供正则的。 。。
    xiaoyang7545
        6
    xiaoyang7545  
       2019-11-13 09:58:59 +08:00
    这个需求很正常啊。要么存储的库里面,要么就在用代码生成 config 的文件来读取解析。给一个编辑正则的页面就好了。
    (必须在我们源代码中写)这个要求应该是你有什么误解?
    a5401017
        7
    a5401017  
    OP
       2019-11-13 10:00:05 +08:00
    @jswxg
    @x2016
    这条思路没错,但是 短信有多种格式 这个地方怎么去处理。
    怎么去匹配 维护之后的正则
    a5401017
        8
    a5401017  
    OP
       2019-11-13 10:00:35 +08:00
    @abeholder 这个 甲方 应该都是差不多的
    b821025551b
        9
    b821025551b  
       2019-11-13 10:02:32 +08:00
    良心家方啊,这需求不是很正常的么
    a5401017
        10
    a5401017  
    OP
       2019-11-13 10:02:55 +08:00
    @xiaoyang7545 可能是吧。多种的话 怎么去正确匹配短信?
    a5401017
        11
    a5401017  
    OP
       2019-11-13 10:03:47 +08:00
    @b821025551b 之前做的时候 说短信格式 不会变 就给写死了 。现在又说经常变
    Tink
        12
    Tink  
    PRO
       2019-11-13 10:05:58 +08:00
    我觉得没问题啊,这不是很正常的需求吗?

    而且懂正则的甲方真的有吗?
    0NF09LJPS51k57uH
        13
    0NF09LJPS51k57uH  
       2019-11-13 10:07:16 +08:00
    这个需求并不奇葩。正则可以存 DB 可以存缓存,量不大甚至可以放内存,至于如何匹配,就是业务上的事情,既然不同正则对应不同的短信格式,可以用职责链去做。
    Uyuhz
        14
    Uyuhz  
       2019-11-13 10:14:11 +08:00
    @Tink 懂正则的没见过,但是会写 sql 的领导你见过没。

    以前给某 zf 做外包的时候,有一个需求,就是管理台里用户自己能改 sql,我当时就问我们组长客户有这个能力改 sql 吗....组长:领导还真会.....
    huage2580
        15
    huage2580  
       2019-11-13 10:21:39 +08:00
    这个= =
    我觉得正常需求?
    提供思路的话,策略模式走起,抽象策略至少两方法,一个能不能处理这条短信,一个处理的结果。比如短信发送方号码匹配,关键字匹配等等。然后责任链串起来。再来一个正则的 baseImp,比如从 db 获取正则还是 json 读取等等,自由发挥。
    nnnToTnnn
        16
    nnnToTnnn  
       2019-11-13 10:47:15 +08:00
    正常啊,提供一个维护界面即可
    xiaoyang7545
        17
    xiaoyang7545  
       2019-11-13 10:47:19 +08:00
    @a5401017 那就必须甲方提供需求,如何分辨短信 A 适用于 A 正则,如何分辨短信 B 使用 B 正则。

    举个简单的例子,就是 比如甲方说 号码来源为 XXX1 起始的用 A 正则, 为 XXX2 起始的使用 B 正则,默认正则为 C。
    a5401017
        18
    a5401017  
    OP
       2019-11-13 10:51:02 +08:00
    @xiaoyang7545 这个 也不是确定的
    saltedFish666
        19
    saltedFish666  
       2019-11-13 13:21:31 +08:00
    要不界面配置,要不给配置文件,读取文件内容
    Kiriya
        20
    Kiriya  
       2019-11-13 15:09:50 +08:00
    和信息有关的业务要注意法律风险
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1212 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:41 PVG 01:41 LAX 10:41 JFK 13:41
    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