背景:有诸多种短信,需要把有用的信息用正则给匹配出来,然后存储 甲方需求:鉴于短信格式多变,由甲方自己写正则去匹配(甲方不提供接口服务,必须在我们源代码中写) 问:如何在不暴露源码的情况下 把甲方写的正则方法导进去
![]() | 1 jswxg 2019-11-13 09:48:45 +08:00 可以做个后台让甲方在里面维护正则,代码里读取正则并执行匹配。 |
2 ghostheaven 2019-11-13 09:48:59 +08:00 via Android 配置文件或者环境变量? |
3 x2016 2019-11-13 09:50:19 +08:00 做个维护界面, 读取正则执行匹配 |
![]() | 5 abeholder 2019-11-13 09:55:10 +08:00 已经算良心甲方了好么,还给提供正则的。 。。 |
![]() | 6 xiaoyang7545 2019-11-13 09:58:59 +08:00 这个需求很正常啊。要么存储的库里面,要么就在用代码生成 config 的文件来读取解析。给一个编辑正则的页面就好了。 (必须在我们源代码中写)这个要求应该是你有什么误解? |
![]() | 9 b821025551b 2019-11-13 10:02:32 +08:00 良心家方啊,这需求不是很正常的么 |
10 a5401017 OP @xiaoyang7545 可能是吧。多种的话 怎么去正确匹配短信? |
11 a5401017 OP @b821025551b 之前做的时候 说短信格式 不会变 就给写死了 。现在又说经常变 |
![]() | 12 Tink PRO 我觉得没问题啊,这不是很正常的需求吗? 而且懂正则的甲方真的有吗? |
13 0NF09LJPS51k57uH 2019-11-13 10:07:16 +08:00 这个需求并不奇葩。正则可以存 DB 可以存缓存,量不大甚至可以放内存,至于如何匹配,就是业务上的事情,既然不同正则对应不同的短信格式,可以用职责链去做。 |
![]() | 14 Uyuhz 2019-11-13 10:14:11 +08:00 @Tink 懂正则的没见过,但是会写 sql 的领导你见过没。 以前给某 zf 做外包的时候,有一个需求,就是管理台里用户自己能改 sql,我当时就问我们组长客户有这个能力改 sql 吗....组长:领导还真会..... |
![]() | 15 huage2580 2019-11-13 10:21:39 +08:00 这个= = 我觉得正常需求? 提供思路的话,策略模式走起,抽象策略至少两方法,一个能不能处理这条短信,一个处理的结果。比如短信发送方号码匹配,关键字匹配等等。然后责任链串起来。再来一个正则的 baseImp,比如从 db 获取正则还是 json 读取等等,自由发挥。 |
16 nnnToTnnn 2019-11-13 10:47:15 +08:00 正常啊,提供一个维护界面即可 |
![]() | 17 xiaoyang7545 2019-11-13 10:47:19 +08:00 @a5401017 那就必须甲方提供需求,如何分辨短信 A 适用于 A 正则,如何分辨短信 B 使用 B 正则。 举个简单的例子,就是 比如甲方说 号码来源为 XXX1 起始的用 A 正则, 为 XXX2 起始的使用 B 正则,默认正则为 C。 |
18 a5401017 OP @xiaoyang7545 这个 也不是确定的 |
19 saltedFish666 2019-11-13 13:21:31 +08:00 要不界面配置,要不给配置文件,读取文件内容 |
20 Kiriya 2019-11-13 15:09:50 +08:00 和信息有关的业务要注意法律风险 |