正規表示式 小白入門篇

2021-07-31 22:35:21 字數 1732 閱讀 2312

**:

不論是前端還是後端,正規表示式好像是大家避不開的乙個東西;很多小夥伴糾結於正規表示式很難,很晦澀,我最近看到網上的教程有些比較晦澀,現在我就介紹一下正規表示式,期望大家能夠快速入門。

一直以來我覺得學乙個東西需要了解著三個問題:

為什麼會有這個東西 (即:出現問題)

怎麼用這個東西 (即:解決問題)

這個東西是怎麼實現的 (即:怎麼解決的問題,一般是高階或者想深入了解才會去**,此處忽略)

針對到正規表示式上就是:

為什麼會有正規表示式

正規表示式怎麼用

下面就這兩個問題我們做講述

正規表示式的產生原因

大家在處理自己的任務的過程中,經常會遇到,想要看乙個字串是否是符合要求的,字元傳中是否包含想要的字串等;例如我想知道使用者輸入的乙個字串是否是合法的郵箱位址,例如我想看使用者輸入的字元傳中是否包含合法的郵箱位址,例如我想把這串字串中可能出現的合法郵箱位址給擷取出來;這些東西怎麼處理呢,有的小夥伴可能會想到直接用所用語言的字串處理函式,這種直接用所使用語言的字串處理函式的方式,對於簡單的來說還可以接受,但是稍微複雜一些就動輒幾十行**不能解決問題。

其實在很久之前就有這些問題了,於是乙個大神 ken thompson 就發明了這個正規表示式用來處理這個問題,他用乙個串有特殊含義的字串來表達乙個符合某項特徵的字串,例如他用\d-\d來表示所有三個數字加乙個-再加5個數字的字串,即形如'333-55555'的字串。(這類似於 數學中我們用x+y=10,來表示兩個和為10的所有數字組合)

其實一句話總結:正規表示式就是用來匹配處理字串的工具(一點個人理解:正規表示式大家可以理解為 正確符合我們約定的規則的字串的表示式,這樣可以破解大家對於這個語法糖的恐懼感)

正規表示式怎麼用

首先正規表示式是乙個表示式,我們需要先有意思想要去表達,才能用。

最簡單的,我想寫乙個只有乙個數字的字串,那怎麼用正規表示式表達只有乙個數字的字串呢。 用正規表示式表達應為\d,所以\d就是乙個正規表示式,它用於表示所有只有乙個數字的字串,我們可以用它來匹陪所有只有乙個數字的字串;

那麼我想表示更複雜的怎麼辦呢,例如我想表示 乙個數字再加乙個字母 的字串,怎麼辦呢?可以想象的是 可以匹配 乙個數字再加乙個字母 的正規表示式也是一串特殊字元,只是我們還不知道怎麼表達,那麼我們只需要進一步了解一下正規表示式的語法就可以了,即我們需要了解一下怎麼寫正規表示式就可以了。

所有非正規表示式約定的特殊字元外均表示自己,例如'34'表示 所有字串是'34'的字串,這顯然只有'34'這乙個字串 (對於哪些是正規表示式約定的特殊字元 我們需要通過了解下面語法來記住)

那麼我們要表示連續三個數字呢,'\d\d\d'顯然是可以的,那麼我要表所示連續100的數字呢,連續 100個'\d'就太複雜了,那怎麼表示這個呢,類似於正規表示式中的乘法出現了

'\d'表示連續三個數字組成的字串,例如'123''111'

把這種語法應用於上面4種,情況得到:

ok,現在我們已經基本入門了正規表示式了,先在我們稍微在深入一點。首先解決的乙個需求是,我們想表達只由1,2,3 這3個數字組成的怎麼辦:

另外常用的匹配行開始匹配結束的字元是 ^和$

nginx 正規表示式匹配入門篇

1 nginx配置基礎 1 正規表示式匹配 區分大小寫匹配 不區分大小寫匹配 和 分別為區分大小寫不匹配及不區分大小寫不匹配 以什麼開頭的匹配 以什麼結尾的匹配 轉義字元。可以轉.等 代表任意字元 2 檔案及目錄匹配 f和 f用來判斷是否存在檔案 d和 d用來判斷是否存在目錄 e和 e用來判斷是否存...

正規表示式入門語法篇

正規表示式 使用單個字串來描述,匹配一系列符合某個語法規則的字串 例項化rexexp語法 1.var reg 此處為正規表示式 eg var reg d 2.var ref new 此處為正規表示式 eg var reg new d 正規表示式語法概念 正規表示式由兩種基本字元型別組成 原義文字字元...

JS基礎入門篇(三十三) 正規表示式

方法一 使用乙個正規表示式字面量,其由包含在斜槓之間的模式組成。var reg1 a var reg2 ab c 方法二 呼叫regexp物件的建構函式 var reg1 new regexp a var reg2 new regexp ab c 1.轉義字元 s 空格 s 非空格 d 數字 d 非...