JavaScript 正則表達式

簡介和工具

什么是正則表達式?

使用單個字符串描述,匹配一系列符合某個句法規(guī)則的字符串。

使用場景

1.比如在 IDE 里使用正則查找替換
2.在 linux 里尋找當前目錄下的 .txt 文件

find ./ -name *.txt
圖形工具

https://regexper.com/, 訪問不了安裝本地服務:https://gitlab.com/javallone/regexper-static


開始使用

常用規(guī)則

1.開始結束: ^** 2.通配符 **.** 3.任意次數(shù) **\*** 4.次數(shù) **{}** 5.分組 **()**, 獲取分組 **1 (第一個分組)
6.構建一個類 []
7.單詞邊界 \b
8.全文匹配 g
9.忽略大小寫 i
10.取反 ^,通常寫在 [^abcd]
11.一次或多次 +
12.在分組內加入(?:reg)則該分組不會被匹配
13.前瞻和后顧:

// 前瞻:
exp1(?=exp2) 查找exp2前面的exp1
// 后顧:
(?<=exp2)exp1 查找exp2后面的exp1
// 負前瞻:
exp1(?!exp2) 查找后面不是exp2的exp1
// 負后顧:
(?<!exp2)exp1 查找前面不是exp2的exp1

eg: a2*3 匹配一個字母跟著一個數(shù)字,并替換該字母為 X

'a2*3'.replace(/\w(?=\d)/g, 'X')
使用方式
1.字面量 var reg = \ regexp \
2.構造函數(shù) new RegExp()
test 和 exec 方法

1.test 某個字符串的時候如果加 g(全局匹配修飾符),多次執(zhí)行結果會不同,原因是全局匹配模式會從 當前匹配結果的最后一個字符的下一個位置 開始匹配。
2.調用非全局 RegExp 對象的 exec 方法時返回數(shù)組,第一個元素是匹配的文本,第二個是與第一個子表達式(也就是()內的內容)匹配的文本,第三個是第二個子表達式匹配的文本(如果有的話),以此類推

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容