Skip to content

[Bug]: “变量标签”做正则替换的时候是不是不支持复杂正则表达式? #740

@yitouyelyu

Description

@yitouyelyu

是否有人曾提过类似的问题

否(No)

升级到最新的版本是否存在这个问题

是(Yes)

是否已经查阅Wiki文档还未能解决的

是(Yes)

APP版本

3.5.0.260224

问题描述

自定义模板可用变量标签支持正则替换,但是是不是有什么限制呢
安按照wiki“常用问题”中“ Q:如何一个正则表达式匹配全部验证码短”提供的一个正则表达式

(.*)((代|授权|验证|动态|校验)码|[【\[].*[】\]]|[Cc][Oo][Dd][Ee]|[Vv]erification\s?([Cc]ode)?)\s?(G-|<#>)?([::\s是为]|[Ii][Ss]){0,3}[\((\[【{「]?(([0-9\s]{4,7})|([\dA-Za-z]{5,6})(?!([Vv]erification)?([Cc][Oo][Dd][Ee])|:))[」}】\])\)]?(?=([^0-9a-zA-Z]|$))(.*)===$7

可以把自定义模板的正则替换中把验证码提取出来

但是因为我想把验证码提取到电子邮件的自定义标题处,所以想使用同一个规则,但是是使用“SMS”变量标签的正则替换,却不能成功,结果会直接输出代码本身,这个是因为什么呢
按照格式:{{变量标签###正则表达式===替换结果}} 改成如下规则
{{SMS###(.*)((代|授权|验证|动态|校验)码|[【\[].*[】\]]|[Cc][Oo][Dd][Ee]|[Vv]erification\s?([Cc]ode)?)\s?(G-|<#>)?([::\s是为]|[Ii][Ss]){0,3}[\((\[【{「]?(([0-9\s]{4,7})|([\dA-Za-z]{5,6})(?!([Vv]erification)?([Cc][Oo][Dd][Ee])|:))[」}】\])\)]?(?=([^0-9a-zA-Z]|$))(.*)===$7}}

这个本来正确的正则表达式,就变得不可用了,同样的正则表达式,在图1设置中生效,在图2设置不生效
这个是正则的原因,还是我的设置哪里没搞对呢?

复现步骤

按图1设置生效
按图2设置不生效

Image Image

是否必现

是(Yes)

出现问题的手机信息

红米note10pro

出现问题的安卓版本、系统版本

MIUI12

提供截图或视频

No response

提供报错堆栈【请提供logcat抓取的日志,参考: https://blog.csdn.net/m0_64776928/article/details/126005119

No response

提供解决方案

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions