這個正則表達式來自JQuery,並且「|」意思是「或」,但是哪兩個部分可以選擇?'|'是什麼意思?在這個正則表達式?
/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
它[^>]*$
| #([\w\-]*)$
或(<[\w\W]+>)[^>]*$
| #([\w\-]*)$)
還是別的?
這個正則表達式來自JQuery,並且「|」意思是「或」,但是哪兩個部分可以選擇?'|'是什麼意思?在這個正則表達式?
/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
它[^>]*$
| #([\w\-]*)$
或(<[\w\W]+>)[^>]*$
| #([\w\-]*)$)
還是別的?
它是[^#<]*(<[\w\W]+>)[^>]*$
或#([\w\-]*)$
,並且都在非捕獲組中。
/^(?:EXP)$)/ # EXP => A|B
/^(?:A|B)$)/ # A => [^#<]*(<[\w\W]+>)[^>]*$, B => #([\w\-]*)$
/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
爲什麼它需要這個正則表達式中的非捕獲組? – YuC
此答案已被添加到[其他]下的[Stack Overflow Regular Expression FAQ](http://stackoverflow.com/a/22944075/2736496)。 – aliteralmind
寫它與縮進多幫助:
^
(?:
[^#<]*
(
<
[\w\W]+
>
)
[^>]*
$
|
#
(
[\w\-]*
)
$
)
你的第二個猜測是正確的。 |
的優先級低於連接(即,表達式在彼此之後)。
試試看[regexper.com](http://www.regexper.com/#%5E(%3F%3A%5B%5E%23%3C%5D *(%3C%5B%5Cw %5CW%5D%2B%3E)%5B%5E%3E%5D *%24%7C%23(%5B%5CW%5C-5D%*)%24))。 –