面試系列 之六 關於正規表示式

2021-09-18 02:54:00 字數 3010 閱讀 9725

這個時候各大公司的筆試面試都開始了,各位小夥伴一起加油吧!

正則的知識很重要,一定要重視哦

首先如何例項化乙個正規表示式物件

// 使用字面量的方式

var reg = /\d/g;

// 使用建構函式的方式

var reg = new regexp('\\b','g');

好,解釋一下這兩種方式,一種就是把要寫的正則放在兩個//之間,其中//後面的是修飾符

第二種,是通過new乙個regexp,接受兩個引數,第乙個是正則的內容。在\b前面加上了乙個\是對\b中的\進行轉義,記住這個是必須的,有特殊的字元都需要轉義。第二個引數是修飾符

下面說一下元字元:

元字元的概念:元字元是在正規表示式中有特殊含義的非字母字元

\f 換頁符 

\n 換行符

\r 回車

\t 製表符

\v 垂直製表符

\/ 乙個 / 直接量

\\ 乙個 \ 直接量

\. 乙個 . 直接量

\* 乙個 * 直接量

\ 乙個 + 直接量

\? 乙個 ? 直接量

\| 乙個 | 直接量

\( 乙個 ( 直接量

\) 乙個 ) 直接量

\[ 乙個 [ 直接量

\] 乙個 ] 直接量

\ 乙個 } 直接量

字元類和範圍類:

我們可以通過來表示乙個類,匹配的時候匹配到其中乙個即可。

例如[0-9]表示數字0到9,[a-za-z]表示匹配所有的大小寫字母。

同時我們可以在中加入^表示乙個反向類,例如[^9]表示除了9之外的所有字元

預定義類:

. 表示除了回車符和換行符之外的所有字元,等同於 [^\r\n]

\d 表示數字字元,等同於[0-9]

\d 表示非數字字元,等同於[^0-9]

\s 表示空白符,等同於[\t\n\x\f\r]

\s 表示非空白符,等同於[^\t\n\x\f\r]

\w 表示單詞字元(字母數字下劃線),等同於[a-za-z_0-9]

\w 表示非單詞字元,等同於[^a-za-z_0-9]

邊界匹配字元:
^ 表示以***開始

$ 表示以***結束

\b 單詞邊界

\b 非單詞邊界

量詞:
? 出現零次或一次(最多出現一次)

+ 出現一次或多次(至少出現一次)

* 出現零次或多次(任意次)

出現n次

出現n到m次

至少出現n次

貪婪和非貪婪模式:

1.正規表示式預設是貪婪模式,也就是說,正則匹配是會盡可能按照量詞的上線多匹配

2.想要關閉正規表示式的貪婪模式,只需要這麼寫/\d?/加上乙個?即可。

分組:可以用()進行分組,可以byr(on|ca)sper進行或,或者是(/d/w12)進行轉化

分組的內容從前到後,分別分組為$1,$2,$3...

忽略分組:

(?:byron).(ok)只要在分組內加上?:就可以忽略分組

前瞻:js正規表示式中只有前瞻沒有後顧。

前瞻就是正規表示式匹配到規則的時候,向前檢查是否符合斷言

exp(?=assert) 正向前瞻,看一下正則後面的內容是否可以匹配上

exp(?!assert) 負向前瞻,看一下正則後面的內容是否可以不匹配上

物件屬性:
global:是否進行全域性搜尋,預設不進行,例子:/\d/g

ignore case:是否忽略大小寫,預設是不忽略,例子:/\d/i

multiline:多行搜尋,預設不開啟多行搜尋

lastindex:是當前表示式匹配內容的最後乙個字元的下乙個位置

source:正規表示式的文字字串

正規表示式的兩個方法:
test()  // 接受乙個引數,判斷傳入的字串是否匹配正規表示式。
特別注意:如果正則中有g,會出現奇怪的結果,原因是lastindex在作怪

exec()  // 接受乙個引數
字串和正則有關的方法:
search() // 接受乙個引數,傳入要搜尋的正規表示式,如果匹配成功就返回第乙個匹配結果的index,否則就返回-1

match() // 和正規表示式exec很像

spilt() // 將字串分割為陣列

replace() // 支援兩個引數,第乙個是尋找和正則匹配的,下乙個是替換的內容

1.用正則匹配手機號碼

function (tele) $/) > -1)  else 

}

還有一種方法:

function (tele) $/.test(tele);

}

2.用正則從url中擷取資訊

var url = '';

var reg = /[?&](\w+)=(\w+)/g;

var obj = {};

while(ret = reg.exec(url))

console.log(obj);

明天就面試啦,祝我成功吧!

正規表示式系列

首先需要引用 using system.text.regularexpressions 數字正規表示式 private static regex regnumber new regex 0 9 數字可帶正負號 private static regex regnumbersign new regex ...

關於正規表示式

前言 regular expressions 正規表示式,以下用re稱呼 對小弟來說一直都是神密的地帶,看到一些網路上的大大,簡單用re就決解了某些文字的問題,小弟便興起了學一學re的想法,但小弟天生就比較懶一些,總希望看有沒有些快速學習的方式,於是小弟又請出google大神,借由祂的神力,小弟在網...

關於正規表示式

使用atl中的正規表示式總是會多多少少的出問題,比如 不能識別,一些其他字元不能識別等等,所以使用了greta解決了那個問題 int caddmaker regexmatch cstring strs,cstring regex,cstringarray result match results r...