一、正則表達式
正則表達式Regular Expression,可以簡寫為regexp、regex或是RE。
正則表達式使用單個字符串來描述或是匹配一系列符合某個句法規則的字符串模型。
按照某種規則去匹配符合條件的字符串。
什么是正則表達式?
正則表達式是由一個字符序列形成的搜索模式(可以用搜索模式來描述想要查詢的內容)。
正則表達式可以是一個簡單的字符,或是更復雜的模式
正則表達式可以用於所有文本搜索和替換操作
通過一個例子來感受以下正則表達式:
.find./-name *.text;
//在當前目錄下查找所有 .txt文件(*表示任意字符)
二、正則表達式的語法結構
(一)語法格式:
/ 正則表達式 / 控制符(或叫修飾符)
其中控制符是可選的。
var patt = /Byronper/g
實例解析:
- /Byronper/g 是一個正則表達式。
- Byronper 是一個正則表達式主體 (用於檢索)。
- g 是一個控制符 (搜索不區分大小寫)。
(二)JavaScript通過內置對象RegExp支持正則表達式
又兩種方法可以實例化RegExp對象
- 字面量
- 構造函數
如何理解實例化?
人是一個類,小明(一個具體的·人)是類的實體。所謂實例化就是:小明從孕育到出生這樣一個過程。
var reg=new RegExp( );這也是實例化,創建了名為reg的對象。
面向對象的編程中,用類創建對象的過程即為實例化。
實例:
1、使用字面量
replace替換;replace(reg,"IS");搜索字符串中的is,將其替換為“IS”;
g表示全局(控制符);\b表示單詞界限
2、使用構造函數
"\\bis\\b"正則表達式的文本。使用兩個\,因為JS中\本來就是特殊字符,如果想使用就需要轉義符 \ 轉義;
new控制符調用構造函數;
不使用"g"時,IS只替換檢索到的第一個字符,第二個第三個都不替換。使用用"g"時,所有對應的字符都替換了;
三、修飾符(控制符)
- g:global 全文搜索。如果不添加,就搜索到第一個即匹配停止;
- i:ignore case 忽略大小寫。默認大小寫敏感,大小寫不同;
- m:multiple lines 多行搜索;
實例:
i用法,忽略大小寫
使用了i 控制符后,無論是大寫還是小寫都替換為G。
四、元字符
正則表達式是由兩種基本數字類型組成:
- 原義文本字符(類似abcd這樣的普通字符)
- 元字符
元字符,又叫字符集,就是用一些特殊符號(非字母字符)表示特定種類的字符或位置。
常用的元字符
五、正則表達式的目的
給定一個正則表達式和另一個字符串,我們可以達到如下的目的:
- 1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作"匹配"):
- 2. 可以通過正則表達式,從字符串中獲取我們想要的特定部分。