/[\s\d]/
任意空白符和數字javascript
/\d{2,3}/
匹配2-3個數字
/\w{3}\d?/
匹配三個單詞和一個可選的數字
/\s+java\s+/
匹配先後帶至少一個空格的java
/[^(]*/
匹配任意個非(字符
默認爲貪婪匹配,當在重複字符後面加上?時候爲非貪婪匹配html
用於分割供選擇的字符串
/ab|cd|ef/
匹配 'ab' 或者 'cd' 或者 'ef'
/\d{3}|[a-z]{4}/
匹配三位數字或者四個小寫字母java
將單獨的項組合成子表達式,以即可以像處理一個獨立的單元那樣用'|', '+', '*', '?'進行處理,一樣能夠取得與括號中正常匹配的內容,在正則表達式中也能夠經過\後面加上數字的形式重複引用,注意這裏的數字是對應的子表達式左括號的位置(理解爲對錶達式進行分組,每組對應有下標,下標的值爲當前組左括號在表達式中的位置,使用\1這樣的語法表示的是其內容和前面所匹配的內容徹底相同,並非使用相同的規則匹配)
/java(script)?/
匹配'java'或者'javascript'
/(ab|cd)+|ef/
匹配ef或者ab cd的重複
/(['"])[^'"]\1/
匹配單引號或雙引號括起來的內容正則表達式
返回第一個與之匹配的字符串的起始位置,若沒匹配到就返回-1,也能夠直接傳入字符串匹配
"JavaScript".search(/java/i)
返回0數組
執行檢索並替換,第一個參數是正則或者字符串,第二個參數爲要替換成的字符串
'Javascript'.replace(/script/,'Script')
若是在被替換字符串中出現了'$'加數字,那麼replace將用與指定的子表達式相匹配的文原本替換這兩個字符串
text.replace(/"([^"]*)"/g,'「$1」')
降""替換成「」bash
惟一的參數是一個正則表達式
若是正則表達式是全局匹配則返回全部匹配結果組成的數組
若是不是,則返回的值第一個值是匹配的字符串,後面則返回分組匹配的內容學習
var url = /(\w+):\/\/([\w.]+)\/(\S*)/
var text = "welcome to http://www.test.com/index.html"
var res = text.match(url);
if (res !== null) {
console.log(res[0]) //http://www.test.com/index.html
console.log(res[1]) //http
console.log(res[2]) //www.test.com
console.log(res[3]) //index.html
}
複製代碼
降字符串按規則拆分紅數組,能夠是字符串和正則表達式url
"1,2,3,4,5,6".split(',') //[1,2,3,4,5,6]
"1, 2 ,3, 4,5 ,6".split(/\s*,\s*/) // [1,2,3,4,5,6]
複製代碼
使用方法
var zipcode = new RegExp('\\d{5}','g')
spa
和String.match類似,若是沒有匹配上返回null,反則返回一個數組,返回規則與String.match相同code
var url = new RegExp('(\\w+):\/\/([\\w.]+)\/(\\S*)')
var text = "welcome to http://www.test.com/index.html"
var res = url.exec(text);
if (res !== null) {
console.log(res[0]) //http://www.test.com/index.html
console.log(res[1]) //http
console.log(res[2]) //www.test.com
console.log(res[3]) //index.html
}
複製代碼
和match不一樣的是不管是否具備全局修飾符g,exec都只會返回一個匹配結果和本次匹配的完整信息,並將lastIndex指向緊接着匹配子串的字符位置,當第二次調用時,它會從lastIndex開始匹配,若是沒有發現匹配會將lastIndex設置爲0
對字符串進行檢測,若是包含匹配結果則返回true
var pattern = new RegExp('java','i');
console.log(pattern.test('java111')) //true
console.log(pattern.test('ja1va111')) // false
複製代碼
後續整理一部分經常使用的正則表達式,學習中進步~~~