正則表達式的剃除字元的用法
前言
最近發現正則表達式有剃除字元的用法,雖然還沒想到在哪可以用到,但還是仔此做個紀錄。
內容
一般如果要用正則表達式檢查單一數字會使用"\d",有或是"[0-9]",中括弧內可以自由地填入允許的字元,但最近發現有相反的寫法,如果要除了數字以外都允許的話,可以寫作"[^0-9]",又或可以用"\D"來代表,用法看起來相當直覺,所以我做了"[^\D]",這樣的結果其實和"[\d]"是一致的,可以把"^"當作是"反閘"的邏輯來想,這可能不讓人困惑,那如果是"[\d\D]"呢?,這樣會變成任何的字元都符合條件,可以想成中括弧內的字元都是用"或閘"邏輯來連結,還有一件有趣的事是通常"[\D]"可以寫作"[^0-9]",但如果把"[\d\D]"寫成"[\d^0-9]",會發現結果不正確!這是因為"^"要放在開頭才有效果,如果放在非開頭會判為允許"^"字元,這點請注意。
沒有留言:
張貼留言