Code Inspections in RegExp
This topic lists all JetBrains Rider code inspections available in RegExp.
You can toggle specific inspections or change their severity level on the Editor | Inspection Settings | Inspection Severity | Other Languages page of the IDE settings Ctrl+Alt+S.
Inspection | Description | Default Severity |
---|---|---|
Anonymous capturing group or numeric back reference | Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e.
(\d\d\d\d)\1
A better regex pattern could look like this:
(?<quad>\d\d\d\d)\k<quad>
New in 2017.2 | |
Begin or end anchor in unexpected position | Reports
(Price $10)
New in 2018.1 | |
Consecutive spaces | Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example:
( )
After the quick-fix is applied:
( {5})
New in 2017.1 | |
Duplicate branch in alternation | Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example:
(alpha|bravo|charlie|alpha)
After the quick-fix is applied:
(alpha|bravo|charlie)
New in 2017.1 | |
Duplicate character in character class | Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Example:
[aabc]
After the quick-fix is applied:
[abc]
| |
Empty branch in alternation | Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation. Example:
(alpha||bravo)
After the quick-fix is applied:
(alpha|bravo)
New in 2017.2 | |
Escaped meta character | Reports escaped meta characters. Some RegExp coding styles specify that meta characters should be placed inside a character class, to make the regular expression easier to understand. This inspection does not warn about the meta character
\d+\.\d+
After the quick-fix is applied:
\d+[.]\d+
New in 2017.1 | No highlighting, only fix |
Octal escape | Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion. Example:
\07
After the quick-fix is applied:
\x07
New in 2017.1 | No highlighting, only fix |
Redundant character escape | Reports character escapes that are replaceable with the unescaped character without a change in meaning. Note that inside the square brackets of a character class, many escapes are unnecessary that would be necessary outside of a character class. Example:
\-\;[\.]
After the quick-fix is applied:
-;[.]
New in 2017.3 | |
Redundant nested character class | Reports unnecessary nested character classes. Example:
[a-c[x-z]]
After the quick-fix is applied:
[a-cx-z]
New in 2020.2 | |
Single character alternation | Reports single char alternation in a RegExp. It is simpler to use a character class instead. This may also provide better matching performance. Example:
a|b|c|d
After the quick-fix is applied:
[abcd]
New in 2017.1 | |
Unnecessary non-capturing group | Reports unnecessary non-capturing groups, which have no influence on the match result. Example:
Everybody be cool, (?:this) is a robbery!
After the quick-fix is applied:
Everybody be cool, this is a robbery!
New in 2021.1 |