这个正则表达式来自JQuery,|
表示or
,但是包含哪两个部分可供选择?
/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
是[^>]*$
| #([\w\-]*)$
或(<[\w\W]+>)[^>]*$
| #([\w\-]*)$)
或其他什么?
答案 0 :(得分:3)
答案 1 :(得分:1)
答案 2 :(得分:0)
它是[^#<]*(<[\w\W]+>)[^>]*$
或#([\w\-]*)$
,并且都在非捕获组中。
/^(?:EXP)$)/ # EXP => A|B
/^(?:A|B)$)/ # A => [^#<]*(<[\w\W]+>)[^>]*$, B => #([\w\-]*)$
/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
答案 3 :(得分:0)
使用缩进编写多行有助于:
^
(?:
[^#<]*
(
<
[\w\W]+
>
)
[^>]*
$
|
#
(
[\w\-]*
)
$
)
你的第二个猜测是正确的。 |
的优先级低于连接(即在彼此之后写表达式)。