‘|’是什么 意味着在这个正则表达式?
这个正则表达式来自JQuery和“|” 是指“或”,但包括哪两个部分可供选择?
/^(?:[^#<]*()[^>]*$|#([\w\-]*)$)/
它是[^>]*$
| #([\w\-]*)$
或()[^>]*$
| #([\w\-]*)$)
还是其他什么?
它是[^#<]*(<[\w\W]+>)[^>]*$
和#([\w\-]*)$
Debuggex演示
简单地说: x|y
匹配x
或y
。
例如: /green|red/
匹配green apple
中的green apple
和red apple.
中的red apple.
请参阅mdn上的正则表达式
它是[^#<]*(<[\w\W]+>)[^>]*$
或#([\w\-]*)$
,并且都在非捕获组中。
/^(?:EXP)$)/ # EXP => A|B /^(?:A|B)$)/ # A => [^#<]*(<[\w\W]+>)[^>]*$, B => #([\w\-]*)$ /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
用缩进写多行有助于:
^ (?: [^#<]* ( < [\w\W]+ > ) [^>]* $ | # ( [\w\-]* ) $ )
你的第二个猜测是正确的。 |
优先级低于连接(即在彼此之后写表达式)。