如何徹底搞懂面向 Web 開發者的正則表達式?

正則表達式能在字符串中查找匹配特定模式的子字符串。

在 JavaScript 中,可以通過斜線 / / 來創建,也可以通過 new RegExp() 來創建,然後就能使用 match、test、replace 等方法。你可以事先定義正則表達式,也可以在調用方法時隨時定義。

每次匹配一個字符,將多個字符放到方括號 [] 中可以匹配多個匹配的字符。

用橫線 - 匹配字符範圍。

在正則表達式末尾添加額外的標記來修改匹配器的行爲。

JavaScript 支持如下標記:

在模式開頭使用箭頭 ^ 表示 “字符串開頭”。

在模式末尾使用美元符號 $ 表示 “字符串結尾”。

將多個模式放在一起以匹配更長的字符串。

使用通配符和特殊的轉義字符來匹配字符類。

. = 除了換行之外的任何字符。

用數量修飾符來匹配特定數量的字符。

使用括號 () 來分組。

match 會返回完整的匹配,外加每個分組,除非你使用了 g 標記。

在括號 () 內使用管道符號 | 來表示分組的匹配內容。

要匹配特殊字符,需要用反斜槓 \ 將其轉義。

JS 正則表達式中的特殊字符包括:^ $ \ . * + ? () [] { } |

所以,要想匹配星號,需要使用:

要想匹配除了特定字符之外的任意字符,可以在方括號內使用 ^。

這意味着 ^ 有兩種含義,可能會造成混淆。

當它出現在正則表達式開頭時,它表示 “字符串開頭 ";出現在方括號內時,表示 “不是這些字符串”。

正則表示可以用來查找並匹配各種東西,比如 URL 和文件名。

但是!對於非常複雜的任務,使用正則表達式時一定要小心,比如分析電子郵件(你很容易就會弄得一團糟),或者分析 HTML(HTML 不是正規的語言,所以沒辦法完全使用正則表達式來解析)。

當然,正則表達式還有更多內容,如懶惰 vs 貪婪,前向,捕獲等。

但是,對於絕大多數 Web 開發者來說,掌握這些最基本的組成部分就夠了。

來源:

https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ZVdzMRvJLHAy4XubQqkC8A