V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
a5401017
V2EX  ›  程序员

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

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

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

    第 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  
       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   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.