Ordre de préséance des opérateurs d'expressions régulières (..|.. ... ..|..)
Dans les expressions régulières, l'ordre de priorité de l'opérateur pipe (|) est de gauche à droite. Cela signifie que la première alternative qui correspond à la chaîne d'entrée sera sélectionnée et que toutes les alternatives suivantes seront ignorées.
Ce comportement contraste avec le comportement de la plupart des autres opérateurs binaires dans les langages de programmation, qui sont évalués à partir de de droite à gauche. Par exemple, dans l'expression 1 2 * 3, l'opération de multiplication est effectuée en premier, ce qui donne une valeur de 6. L'opération d'addition est ensuite effectuée, ce qui donne une valeur finale de 8.
Le gauche à -la priorité à droite de l'opérateur pipe a du sens dans le contexte des expressions régulières. Il permet à l'expression de correspondre à la chaîne d'entrée de la manière la plus efficace possible, sans avoir à revenir en arrière et à réévaluer les alternatives.
Il est important de noter que le modificateur RegexOptions.RightToLeft n'a pas d'impact sur l'ordre de priorité. de l'opérateur de canalisation. Ce modificateur n'affecte que la direction dans laquelle le moteur d'expression régulière examine la chaîne d'entrée.
Par exemple, l'expression régulière suivante correspondra à la première occurrence de la chaîne « bb » dans la chaîne d'entrée « bbac » :
(aaa|bb|a)
Si Regex.Match est utilisé pour trouver une correspondance dans "bbac", la valeur obtenue sera "bb". En effet, l'alternative "bb" apparaît avant l'alternative "a" dans l'expression régulière et le moteur d'expression régulière cessera d'évaluer les alternatives une fois qu'une correspondance sera trouvée.
Si Regex.Matches est utilisé pour rechercher toutes les correspondances dans "bbac", "bb" et "a" seront inclus dans les résultats. En effet, Regex.Matches évaluera toutes les alternatives dans l'expression régulière, quel que soit l'ordre dans lequel elles apparaissent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!