¿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).

  • Javascript RegEx no funciona
  • javascript replace signo de interrogación
  • Agregue wikilinks automáticamente en una página de MediaWiki, dada una list de títulos de página
  • Regex para get el número del final de una cadena
  • Obtenga título y año del nombre de file usando regex
  • Regex: corresponde a las palabras que contienen 2 o más secuencias de vocales de 2 letras
  • Eliminar tags HTML en Javascript con Regex
  • JavaScript: ¿Hay una biblioteca de expresiones regulares que sea totalmente compatible con las soluciones alternativas?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.