RegexScan
工具介绍
RegexScan 是 TCA 自研工具,是一款正则匹配工具,通过正则规则来匹配检出目标代码问题。
| 自定义规则 | 自定义框架适配 |
|---|---|
| ✅ | ❌ |
自定义规则
适用场景
可通过设计正则表达式,来匹配到目标代码,从而检出风险问题。
以下是自定义规则流程:
点击添加规则
访问 TCA 平台工具管理页面,找到 RegexScan 工具并进入自定义规则列表页,点击添加规则按钮。
填写规则信息
按业务需求设计规则并配置规则信息,配置完毕后点击确认按钮,完成规则创建。
规则参数配置说明
需根据规则参数配置说明设计规则。
参数格式类似 ini 的格式,即
key = value的格式,一行是一个参数。[必选] regex 参数 :用于指定扫描的正则表达式。例如:
regex=\busleep\s*\(\s*\d{1,2}\s\*\)。建议先测试好正则表达式是否正确,正则表达式测试网站推荐:http://tool.oschina.net/regex。
[必选] msg 参数:用于自定义提示信息,例如:
msg = 函数方法 %s 已经废弃,请使用 xxx 方法。如果正则表达式(regex)中定义了捕获组(group,即使用
()括起来的部分),则 msg 中的%s会按顺序依次替换为这些捕获组匹配的内容。如果正则表达式未定义捕获组(group),则 msg 中最多只能包含一个
%s,并将替换为整个正则匹配到的字符串。如果 msg 中不包含
%s,则会直接完整显示该信息。如果未提供 msg 参数,将使用默认提示:
发现不规范代码:%s(建议根据具体场景自定义提示信息,避免默认描述过于笼统)。
[可选] ignore_comment 参数:用于指定是否忽略注释代码,可选值:True、true、False、false,默认 False。例如:
ignore_comment=True。[可选] include 参数:用于指定分析的文件范围,使用 unix 的文件匹配格式(通配符格式),多项使用英文分号
;分隔。例如:include=path/to/dir;path/to/\*.cpp。[可选] exclude 参数:用于指定不分析的文件范围。格式同 include 参数。
规则示例:
用于检测项目代码 merge 后,是否存在未解决的冲突,是则会检出风险。
regex=(<<<<<<< HEAD.*) msg=代码merge后,存在冲突未解决 ignore_comment = True使用自定义规则
进入团队/项目分析方案,在分析方案规则配置中点击添加规则按钮,搜索并选中该规则,完成规则添加。