update RegExp inspection descriptions with examples

GitOrigin-RevId: 1daa0f68ede1036d134127cdacd0b61e5d438ca8
This commit is contained in:
Bas Leijdekkers
2021-06-04 18:41:58 +02:00
committed by intellij-monorepo-bot
parent a99d1835ba
commit c50a102e50
12 changed files with 103 additions and 50 deletions

View File

@@ -1,14 +1,18 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports anonymous capturing groups and numeric back references in a RegExp. 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. 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. 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, When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group,
i.e. <b>(?:xxx)</b> instead of <b>(xxx)</b>. i.e. <code>(?:xxx)</code> instead of <code>(xxx)</code>.
<p><b>Example:</b></p>
<pre><code>
(\d\d\d\d)\1
</code></pre>
<p>A better regex pattern could look like this:</p>
<pre><code>
(?&lt;quad>\d\d\d\d)\k&lt;quad>
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.2</small> <p><small>New in 2017.2</small>
</body> </body>

View File

@@ -1,11 +1,15 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports duplicate branches in a RegExp alternation. For example <code>(a|b|a)</code>. Reports duplicate branches in a RegExp alternation.
Duplicate branches slow down matching and obscure the intent of the expression. Duplicate branches slow down matching and obscure the intent of the expression.
<p><b>Example:</b></p>
<pre><code>
(alpha|bravo|charlie|alpha)
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
(alpha|bravo|charlie)
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.1</small> <p><small>New in 2017.1</small>
</body> </body>

View File

@@ -1,7 +1,15 @@
<html> <html>
<body> <body>
Reports duplicate characters inside a RegExp character class. For example <code>[++]</code>. Reports duplicate characters inside a RegExp character class.
Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex.
<p><b>Example:</b></p>
<pre><code>
[aabc]
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
[abc]
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
</body> </body>
</html> </html>

View File

@@ -1,12 +1,16 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports empty branches in a RegExp alternation. For example:<br> <code>a<b>||</b>b</code> Reports empty branches in a RegExp alternation.
<p>An empty branch will only match the empty string, and in most cases that is not what is desired. 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. This inspection will not report a single empty branch at the start or the end of an alternation.
<p><b>Example:</b></p>
<pre><code>
(alpha||bravo)
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
(alpha|bravo)
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.2</small> <p><small>New in 2017.2</small>
</body> </body>

View File

@@ -1,15 +1,18 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports the escaped meta characters, e.g. <b><code>\.</code></b>. Reports the escaped meta characters.
Some RegExp coding styles specify that meta characters should be placed inside a character class, Some RegExp coding styles specify that meta characters should be placed inside a character class,
to make the regular expression easier to understand. to make the regular expression easier to understand.
For example the regex <b><code>\d+\.\d+</code></b> would be written as <code>\d+[.]\d+</code>. This inspection does not warn about the meta character <code>[</code>, <code>]</code> and <code>^</code>,
This inspection does not warn about the meta character <b><code>[</code></b>, <b><code>]</code></b> and <b><code>^</code></b>,
because those would need additional escaping inside a character class. because those would need additional escaping inside a character class.
<p><b>Example:</b></p>
<pre><code>
\d+\.\d+
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
\d+[.]\d+
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.1</small> <p><small>New in 2017.1</small>
</body> </body>

View File

@@ -1,11 +1,15 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports octal escapes, which are easily confused with back references. Reports octal escapes, which are easily confused with back references.
Use hexadecimal escapes to avoid confusion. Use hexadecimal escapes to avoid confusion.
<p><b>Example:</b></p>
<pre><code>
\07
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
\x07
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.1</small> <p><small>New in 2017.1</small>
</body> </body>

View File

@@ -1,12 +1,15 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports character escapes that are replaceable with the unescaped character without a change in meaning. 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. Note that inside the square brackets of a character class, many escapes are unnecessary that would be necessary outside of a character class.
For example the regex <b><code>[\.]</code></b> is identical to <b><code>[.]</code></b> <p><b>Example:</b></p>
<pre><code>
\-\;[\.]
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
-;[.]
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2017.3</small> <p><small>New in 2017.3</small>
</body> </body>

View File

@@ -1,7 +1,14 @@
<html> <html>
<body> <body>
Reports unnecessary nested character classes. Reports unnecessary nested character classes.
For example <code>[a-c[x-z]]</code>, which is equivalent too <code>[a-cx-z]</code>. <p><b>Example:</b></p>
<pre><code>
[a-c[x-z]]
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
[a-cx-z]
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2020.2</small> <p><small>New in 2020.2</small>
</body> </body>

View File

@@ -1,12 +1,16 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports multiple consecutive spaces in a RegExp. 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. 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. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.
<p><b>Example:</b></p>
<pre><code>
( )
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
( {5})
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p> <p>
<small>New in 2017.1</small> <small>New in 2017.1</small>

View File

@@ -1,8 +1,16 @@
<html> <html>
<body> <body>
Reports single char alternation (e.g. <b><code>a|b|c|d</code></b>) in a RegExp. Reports single char alternation in a RegExp.
It is simpler to use a character class (<b><code>[abcd]</code></b>) instead. It is simpler to use a character class instead.
This usually also provides slightly better matching performance. This may also provide better matching performance.
<p><b>Example:</b></p>
<pre><code>
a|b|c|d
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
[abcd]
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p> <p>
<small>New in 2017.1</small> <small>New in 2017.1</small>

View File

@@ -1,13 +1,13 @@
<!--
~ Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-->
<html> <html>
<body> <body>
Reports <code>^</code> or <code>\A</code> anchors not at the beginning of the pattern and Reports <code>^</code> or <code>\A</code> anchors not at the beginning of the pattern and
<code>$</code>, <code>\Z</code> or <code>\z</code> anchors not at the end of the pattern. <code>$</code>, <code>\Z</code> or <code>\z</code> anchors not at the end of the pattern.
In the wrong position these RegExp anchors prevent the pattern from matching anything. In the wrong position these RegExp anchors prevent the pattern from matching anything.
In case of the <code>^</code> and <code>$</code> anchors, most likely the literal character was meant and the escape forgotten. In case of the <code>^</code> and <code>$</code> anchors, most likely the literal character was meant and the escape forgotten.
<p><b>Example:</b></p>
<pre><code>
(Price $10)
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p> <p>
<small>New in 2018.1</small> <small>New in 2018.1</small>

View File

@@ -1,10 +1,14 @@
<html> <html>
<body> <body>
Reports unnecessary non-capturing groups. Reports unnecessary non-capturing groups, which have no influence on the match result.
For example<br> <p><b>Example:</b></p>
<code>Everybody be cool, (?:this) is a robbery!</code><br> <pre><code>
is equivalent too<br> Everybody be cool, (?:this) is a robbery!
<code>Everybody be cool, this is a robbery!</code>. </code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
Everybody be cool, this is a robbery!
</code></pre>
<!-- tooltip end --> <!-- tooltip end -->
<p><small>New in 2021.1</small> <p><small>New in 2021.1</small>
</body> </body>