¿Qué hace el ‘|’ (pipa de caracteres) significa en una expresión regular?

Esta expresión regular viene de JQuery, y el | Significa or , pero ¿qué dos partes están incluidas para elegir?

/^(?:[^#<]*()[^>]*$|#([\w\-]*)$)/

Es [^>]*$ | #([\w\-]*)$ o ()[^>]*$ | #([\w\-]*)$) o algo más?

4 Solutions collect form web for “¿Qué hace el ‘|’ (pipa de caracteres) significa en una expresión regular?”

Es [^#< ]*(<[\w\W]+>)[^>]*$ y #([\w\-]*)$

Visualización de expresiones regulares

Demo Debuggex

Simplemente: x|y

Coincide con x o y .

Por ejemplo: /green|red/ combina green en green apple y red en red apple.

Ver expresión regular en mdn

Es [^#< ]*(<[\w\W]+>)[^>]*$ o #([\w\-]*)$ , y ambos en un grupo que no captura.

 /^(?:EXP)$)/ # EXP => A|B /^(?:A|B)$)/ # A => [^#< ]*(<[\w\W]+>)[^>]*$, B => #([\w\-]*)$ /^(?:[^#< ]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/ 

Escribirlo en multilínea con sangría ayuda a:

 ^ (?: [^#< ]* ( < [\w\W]+ > ) [^>]* $ | # ( [\w\-]* ) $ ) 

Su segunda conjetura es correcta. El | tiene menor prioridad que la concatenación (es decir, escribir expresiones una tras otra).

  • Regex, grupo y cuantifyer
  • ¿Por qué la expresión regular válida para contraseña en el atributo de patrón HTML5 no funciona?
  • Intersección de texts para encontrar palabras comunes
  • Emparejando exactamente 10 dígitos en Javascript
  • Cómo convertir caracteres no ingleses a inglés con JavaScript
  • Empareje el smiley ":)" seguido por el límite de la palabra
  • ¿Es posible explotar una function matemática de JavaScript que permite PEMDAS?
  • Switch Regex Test Case
  • gulp main-bower-files filter de expresión regular no funciona
  • Cómo analizar numbers de una cadena en JavaScript?
  • ¿Hay una versión de String.indexOf () de JavaScript que permita expresiones regulares?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.