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

2019-11-13 09:41:10 +08:00
 a5401017

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

2941 次点击
所在节点    程序员
20 条回复
jswxg
2019-11-13 09:48:45 +08:00
可以做个后台让甲方在里面维护正则,代码里读取正则并执行匹配。
ghostheaven
2019-11-13 09:48:59 +08:00
配置文件或者环境变量?
x2016
2019-11-13 09:50:19 +08:00
做个维护界面, 读取正则执行匹配
a5401017
2019-11-13 09:52:14 +08:00
@jswxg
@x2016
就是在正则存储到数据库里,匹配的时候 去读数据库?
abeholder
2019-11-13 09:55:10 +08:00
已经算良心甲方了好么,还给提供正则的。 。。
xiaoyang7545
2019-11-13 09:58:59 +08:00
这个需求很正常啊。要么存储的库里面,要么就在用代码生成 config 的文件来读取解析。给一个编辑正则的页面就好了。
(必须在我们源代码中写)这个要求应该是你有什么误解?
a5401017
2019-11-13 10:00:05 +08:00
@jswxg
@x2016
这条思路没错,但是 短信有多种格式 这个地方怎么去处理。
怎么去匹配 维护之后的正则
a5401017
2019-11-13 10:00:35 +08:00
@abeholder 这个 甲方 应该都是差不多的
b821025551b
2019-11-13 10:02:32 +08:00
良心家方啊,这需求不是很正常的么
a5401017
2019-11-13 10:02:55 +08:00
@xiaoyang7545 可能是吧。多种的话 怎么去正确匹配短信?
a5401017
2019-11-13 10:03:47 +08:00
@b821025551b 之前做的时候 说短信格式 不会变 就给写死了 。现在又说经常变
Tink
2019-11-13 10:05:58 +08:00
我觉得没问题啊,这不是很正常的需求吗?

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

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

举个简单的例子,就是 比如甲方说 号码来源为 XXX1 起始的用 A 正则, 为 XXX2 起始的使用 B 正则,默认正则为 C。
a5401017
2019-11-13 10:51:02 +08:00
@xiaoyang7545 这个 也不是确定的
saltedFish666
2019-11-13 13:21:31 +08:00
要不界面配置,要不给配置文件,读取文件内容
Kiriya
2019-11-13 15:09:50 +08:00
和信息有关的业务要注意法律风险

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX