Invalid regex pattern (RE0001)

Property Value
Rule ID RE0001
Title Invalid regex pattern
Category Style
Subcategory N/A
Applicable languages C#, Visual Basic
Options See Options section.

Overview

This rule flags places where a literal string containing a regular expression does not conform to required syntax. The rule applies to an identified regular expression, which is determined by the inclusion of an inline comment or comment preceding the regex string, such as //lang=regex or //lang=regex,strict. The latter comment uses strict mode for regex interpretation.

This rule is IDE-only and not applicable for command-line scenarios.

Options

Options specify the behavior that you want the rule to enforce.

For code recognized as regex, you set the options in Visual Studio by selecting Tools > Options > Text Editor > C# | Visual Basic > Advanced. The following options are available under the Regular Expressions section:

Property Description
Colorize regular expressions Specifies whether to colorize regular expressions.
Report invalid regular expressions Specifies whether to report invalid regular expressions.
Highlight related components under cursor Specifies whether Quick Actions
uses highlighting.
Show completion list Specifies whether to show IntelliSense code completion.

Example

The following code snippet shows an example with an invalid regular expression.

// Code with violations
// lang=regex
string pattern = @"\b[M]\w+\";

// Fixed code
// lang=regex
string pattern = @"\b[M]\w+";

Suppress a warning

If you want to suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.

#pragma warning disable RE0001
// The code that's violating the rule is on this line.
#pragma warning restore RE0001

To disable the rule for a file, folder, or project, set its severity to none in the configuration file.

[*.{cs,vb}]
dotnet_diagnostic.RE0001.severity = none

For more information, see How to suppress code analysis warnings.