RegExp 中的代码检查
本主题列出了 RegExp 中可用的所有 PhpStorm 代码检查。
您可以在编辑器 |上切换特定检查或更改其严重性级别。IDE 设置的检查Ctrl+Alt+S页面。
检查 | 描述 | 默认严重性 |
---|---|---|
在 RegExp 中报告匿名捕获组和数字反向引用。这些仅在 RegExp 方言支持命名组和命名组引用时才报告。命名组和命名后引用提高了代码的可读性,建议改用。当不需要捕获时,通过使用非捕获组(即
(\d\d\d\d)\1
更好的正则表达式模式可能如下所示:
(?<四边形>\d\d\d\d)\k<四边形>
2017.2新增 | ||
报告
(价格 10 美元)
2018.1新增 | 警告 | |
报告 RegExp 中的多个连续空格。因为默认情况下空格是不可见的,所以很难看出需要多少空格。通过用单个空格和一个计数的量词替换连续的空格,可以使 RegExp 更加清晰。 例子:
( )
应用快速修复后:
({5})
2017.1新增 | 警告 | |
报告 RegExp 交替中的重复分支。重复的分支会减慢匹配速度并模糊表达式的意图。 例子:
(阿尔法|布拉沃|查理|阿尔法)
应用快速修复后:
(阿尔法|布拉沃|查理)
2017.1新增 | 警告 | |
报告 RegExp 字符类中的重复字符。重复字符是不必要的,可以在不更改正则表达式语义的情况下删除。 例子:
[aabc]
应用快速修复后:
[ABC]
| 警告 | |
在 RegExp 交替中报告空分支。空分支只会匹配空字符串,在大多数情况下,这不是我们想要的。此检查不会在交替开始或结束时报告单个空分支。 例子:
(阿尔法||布拉沃)
应用快速修复后:
(阿尔法|布拉沃)
2017.2新增 | 警告 | |
报告转义元字符。一些 RegExp 编码样式指定元字符应放置在字符类中,以使正则表达式更易于理解。此检查不会警告元字符
\d+\.\d+
应用快速修复后:
\d+[.]\d+
2017.1新增 | 没有高亮,只有修复 | |
报告八进制转义,很容易与反向引用混淆。使用十六进制转义符以避免混淆。 例子:
\07
应用快速修复后:
\x07
2017.1新增 | 没有高亮,只有修复 | |
报告可以用未转义字符替换而不改变含义的字符转义。请注意,在字符类的方括号内,许多转义是不必要的,而这些转义在字符类之外是必需的。 例子:
\-\;[\.]
应用快速修复后:
-;[.]
2017.3新增 | 警告 | |
报告不必要的嵌套字符类。 例子:
[ac[xz]]
应用快速修复后:
[a-cx-z]
2020.2 新增 | 警告 | |
报告 RegExp 中的单个字符交替。改用字符类更简单。这也可以提供更好的匹配性能。 例子:
a|b|c|d
应用快速修复后:
[A B C D]
2017.1新增 | 警告 | |
报告不必要的非捕获组,对匹配结果没有影响。 例子:
大家冷静点,(?:this) 是抢劫!
应用快速修复后:
大家冷静点,这是抢劫!
2021.1 中的新功能 | 警告 |