All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.py.rules.python.S6323.html Maven / Gradle / Ivy

There is a newer version: 4.23.0.17664
Show newest version

Why is this an issue?

Alternation is used to match a single regular expression out of several possible regular expressions. If one of the alternatives is empty it would match any input, which is most probably a mistake.

Noncompliant code example

re.search(r"Jack|Peter|", "John") # Noncompliant - will match an empty string
re.search(r"Jack||Peter", "John") # Noncompliant - will match an empty string

Compliant solution

re.search(r"Jack|Peter", "John") # returns false

Exceptions

One could use an empty alternation to make a regular expression group optional. Rule will not report on such cases.

re.search(r"mandatory(-optional|)", "mandatory")
re.search(r"mandatory(-optional|)", "mandatory-optional")

However, if there is a quantifier after the group the issue will be reported as using both | and quantifier is redundant.

re.search(r"mandatory(-optional|)?", "mandatory-optional") # Noncompliant - using both `|` inside the group and `?` for the group.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy