簡介和工具
什么是正則表達式?
使用單個字符串描述,匹配一系列符合某個句法規(guī)則的字符串。
使用場景
1.比如在 IDE 里使用正則查找替換
2.在 linux 里尋找當前目錄下的 .txt 文件
find ./ -name *.txt
圖形工具
https://regexper.com/, 訪問不了安裝本地服務:https://gitlab.com/javallone/regexper-static
開始使用
常用規(guī)則
1.開始結束: ^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ù)組,第一個元素是匹配的文本,第二個是與第一個子表達式(也就是()內的內容)匹配的文本,第三個是第二個子表達式匹配的文本(如果有的話),以此類推