[Suggestion]: 关于快递取件码信息的提取
kyeo-hub opened this issue · comments
是否有人曾提过类似的问题?
否(No)
你觉得APP有什么不足之处?
我一直在尝试对快递取件信息进行提取,但是wiki里面只说了正则替换,我通过正则表达式对快递取件信息进行了匹配,但是我不知道如何自定义出来我想要的快递取件信息。取件短信如下:
【圆通快递】请凭1-4-4230到尚璟瑞府妈妈驿站领取运单尾号6017包裹,详询13726410547。
【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639
【妈妈驿站】取货码2-2-1521,您有极兔快递包裹,已到尚璟瑞府21栋104号门面,询13726410547
我想转发的内容为:XX驿站-取件码-XX快递
但是目前的正则替换规则,我不懂该怎么保留我要提取的内容。
你觉得该怎么去完善会比较好?【非必答】
或许启用正则替换内容能加个正则提取变量以便放到自定义模板中?还是其他的方法。
实在写不出一条通吃的正则表达式,难道就不能分步进行吗?
工具是死的,人是活的啊,只要**不滑坡,办法总比困难多!
【注意】以下仅供思路参考,不保证正则表达式严谨,不保证能适配各种各样的短信格式,请自行根据实际情况微调:
第1次正则替换:
(.*)(.{2}驿站)(.*)===$2#$1$2$3
得到
妈妈驿站#【圆通快递】请凭1-4-4230到尚璟瑞府妈妈驿站领取运单尾号6017包裹,详询13726410547。
菜鸟驿站#【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639
妈妈驿站#【妈妈驿站】取货码2-2-1521,您有极兔快递包裹,已到尚璟瑞府21栋104号门面,询13726410547
第2次正则替换:
(.+)#(.*)(\d+-\d+-\d+)(.*)===$1#$3#$2$3$4
得到
妈妈驿站#1-4-4230#【圆通快递】请凭1-4-4230到尚璟瑞府妈妈驿站领取运单尾号6017包裹,详询13726410547。
菜鸟驿站#0-2-7507#【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639
妈妈驿站#2-2-1521#【妈妈驿站】取货码2-2-1521,您有极兔快递包裹,已到尚璟瑞府21栋104号门面,询13726410547
第3次正则替换:
(.+)#(.+)#(.*)(.{2}快递)(.*)===$1-$2-$4
得到
妈妈驿站-1-4-4230-圆通快递
菜鸟驿站-0-2-7507-中通快递
妈妈驿站-2-2-1521-极兔快递
PS. 正则替换允许填写多条,具体参看 Wiki常见问题
实在写不出一条通吃的正则表达式,难道就不能分步进行吗?
工具是死的,人是活的啊,只要**不滑坡,办法总比困难多!
【注意】以下仅供思路参考,不保证正则表达式严谨,不保证能适配各种各样的短信格式,请自行根据实际情况微调:
第1次正则替换:
(.*)(.{2}驿站)(.*)===$2#$1$2$3
得到
妈妈驿站#【圆通快递】请凭1-4-4230到尚璟瑞府妈妈驿站领取运单尾号6017包裹,详询13726410547。 菜鸟驿站#【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639 妈妈驿站#【妈妈驿站】取货码2-2-1521,您有极兔快递包裹,已到尚璟瑞府21栋104号门面,询13726410547
第2次正则替换:
(.+)#(.*)(\d+-\d+-\d+)(.*)===$1#$3#$2$3$4
得到
妈妈驿站#1-4-4230#【圆通快递】请凭1-4-4230到尚璟瑞府妈妈驿站领取运单尾号6017包裹,详询13726410547。 菜鸟驿站#0-2-7507#【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639 妈妈驿站#2-2-1521#【妈妈驿站】取货码2-2-1521,您有极兔快递包裹,已到尚璟瑞府21栋104号门面,询13726410547
第3次正则替换:
(.+)#(.+)#(.*)(.{2}快递)(.*)===$1-$2-$4
得到
妈妈驿站-1-4-4230-圆通快递 菜鸟驿站-0-2-7507-中通快递 妈妈驿站-2-2-1521-极兔快递
PS. 正则替换允许填写多条,具体参看 Wiki常见问题
感谢您的回答,我下午没看,一直在研究从接收端来是用Python脚本提取,甚至准备中间做个中专webhook服务器来提取之后转发到接收端。晚上回来看到您的信息,感觉干货满满,立即试验了一下。发现一个小问题:
【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639
这条信息中的收件码是用正则规则后,会变成0-2-7507,我不知道是哪里出了BUG。
感谢您的回答,我下午没看,一直在研究从接收端来是用Python脚本提取,甚至准备中间做个中专webhook服务器来提取之后转发到接收端。晚上回来看到您的信息,感觉干货满满,立即试验了一下。发现一个小问题:
【菜鸟驿站】您的中通快递包裹已到武汉市尚璟瑞府11栋101门店,请20:30前凭10-2-7507取件,详询17612731639
这条信息中的收件码是用正则规则后,会变成0-2-7507,我不知道是哪里出了BUG。
将第二次替换的正则表达式优化一下,再试试
(.+)#(.*?)(\d+-\d+-\d+)(.*)===$1#$3#$2$3$4
PS. 这就是所谓的 正则的贪婪与非贪婪模式,所以一开始就说了,仅供思路参考,正则要你自己去写
说实话自己这方面的知识确实不足。
感谢你的付出与启示,已打赏10元,尽我绵薄之力,心怀感激!