一直以為正則方括號內的短橫線是要轉義的,例:
[a-z\-]
其實“-”在緊挨邊界的時候不需要轉義,也就是說可以寫成:
[a-z-] 或 [-a-z]
經過自己驗證,我們暫且稱“a-z”為“組”,結論是“在方括號邊界或是組邊界的都不需要轉義。”
[a-z-0-9]
再試一試發現這樣也可以,這樣結論又變成“只要短橫線(-)不能構成組,就可以不專一”,不知道這樣說是否嚴密。
[a-z!-0-9] 或 [a-z!-@0-9]
以上結論沒有試過多種語言的結果是否一致。
至於何時轉義,如果弄不清,還是統統轉義吧!