正則表達式名聲不好。似乎每當提到它們時,它都會調用可怕的文字牆的圖像,這些圖像看起來絕對是胡說八道。例如,這是用於驗證電子郵件地址的常用正則表達式:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/ =?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\ [\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0 -9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0- 5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0 -4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\ x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
哎呀。我不會假裝你會在本文結束時理解這個表達,但我至少想向你展示它是建立在簡單的規則之上的,這些規則並不難理解。
您可能想知道,為什麼您首先要關心這些事情是如何工作的?我認為有幾個很好的理由。首先是理解基礎可以更容易記住如何編寫好的正則表達式。
我肯定遇到過多種情況,我寫了一個正則表達式,然後幾個月都不需要看它。當我最終回到它時,我已經忘記了一切,不得不從頭開始重新學習