正則表示式(regular expression)
正則表示式
什麼是正則表示式?
正則表示式:用於匹配規律規則的表示式,是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個“規則字串”,用來表達對字串的一種過濾邏輯。
正則表示式的作用
- 匹配:給特定的字串作是否符合正則表示式的過濾邏輯。
- 提取:通過正則,獲取字串中特定部分。
- 替換:強大的字串替換能力。
正則表示式的特點
- 靈活性,邏輯性和功能性非常強
- 可以迅速用簡單的方式達到字串的複雜控制
- 對於剛接觸的人來說,有點難懂
正則表示式的組成
- 普通字元
- 特殊字元(元字元):正則表示式中有特殊意義的字元
元字元
常用元字元
限定符
簡單演示說明
常用元字元 * . 表示的是:除了\n以外的任意的一個字元 * [] 表示的是:範圍 * [0-9] 表示的是0到9之間的任意的一個數字, * [a-z] 表示的是:所有的小寫的字母中的任意的一個 * [A-Z] 表示的是:所有的大寫的字母中的任意的一個 * [a-zA-Z] 表示的是:所有的字母的任意的一個 * [0-9a-zA-Z] 表示的是: 所有的數字或者是字母中的一個 * [] 另一個函式: 把正則表示式中元字元的意義幹掉 [.] 就是一個. * | 或者 [0-9]|[a-z] 表示的是要麼是一個數字,要麼是一個小寫的字母 * () 分組 提升優先順序 [0-9]|([a-z])|[A-Z] * ([0-9])([1-9])([a-z]) 三組, 從最左邊開始計算 限定符 * * 表示的是:前面的表示式出現了0次到多次 [a-z][0-9]* 小寫字母中的任意一個 後面是要麼是沒有數字的,要麼是多個數字的 * + 表示的是:前面的表示式出現了1次到多次 [a-z][9]+ 小寫字母一個後面最少一個9,或者多個9 * ? 表示的是:前面的表示式出現了0次到1次,最少是0次,最多1次 ,另一個含義:阻止貪婪模式 [9][a-z]? "12312349ij" * 限定符:限定前面的表示式出現的次數 * {} 更加的明確前面的表示式出現的次數 * {0,} 表示的是前面的表示式出現了0次到多次,和 *一樣 * {1,} 表示的是前面的表示式出現了1次到多次,和 +一樣 * {0,1} 表示的是前面的表示式出現了0次到1次,和 ?一樣 * {5,10} 表示的是前面的表示式出現了5次到10次 * {4} 前面的表示式出現了4次 * {,10} 錯誤的========不能這麼寫 * ^ 表示的是以什麼開始,或者是取非(取反) ^[0-9] 以數字開頭 ^[a-z] 以小寫字母開始 [^0-9] 取反,非數字 * $ 表示的是以什麼結束 [0-9][a-z]$ 必須以小寫字母結束 * \d 數字中的任意一個, * \D 非數字中的一個 * \s 空白符中的一個 * \S 非空白符 * \w 非特殊符號 * \W 特殊符號 * \b 單詞的邊界
正則表示式運算優先順序
使用正則表示式
建立正則物件
方法一
var reg = new Regex('\d', 'i');
var reg = new Regex('\d', 'gi');
方法二
var reg = /\d/i;
var reg = /\d/gi;
引數
正則匹配
console.log(/./.test("除了回車換行以為的任意字元"));//true console.log(/.*/.test("0個到多個"));//true console.log(/.+/.test("1個到多個"));//true console.log(/.?/.test("哈哈"));//true console.log(/[0-9]/.test("9527"));//true console.log(/[a-z]/.test("what"));//true console.log(/[A-Z]/.test("Are"));//true console.log(/[a-zA-Z]/.test("幹啥"));//false console.log(/[0-9a-zA-Z]/.test("9ebg"));//true console.log(/b|(ara)/.test("abra"));//true console.log(/[a-z]{2,3}/.test("arfsf"));//true
正則提取(分組)
// 提取日期中的年部分 2015-5-10
var dateStr = '2016-1-5';
// 正則表示式中的()作為分組來使用,獲取分組匹配到的結果用.$1 $2 $3....來獲取
var reg = /(\d{4})-\d{1,2}-\d{1,2}/;
if (reg.test(dateStr)) {
console.log(RegExp.$1);
}
正則替換
// 1. 替換所有空白
var str = " 123AD asadf asadfasf adf ";
str = str.replace(/\s/g,"xx");
console.log(str);
// 2. 替換所有,|,
var str = "abc,efg,123,abc,123,a";
str = str.replace(/,|,/g, ".");
console.log(str);
常用正則
正則表示式線上工具
相關推薦
正則表示式(Regular Expression)基本語法
一、簡介 為什麼需要正則表示式? 文字的複雜處理 正則表示式的優勢和用途? 一種強大而靈活的文字處理工具; 大部分程式語言、資料庫、文字編輯器、開發環境都支援正則表示式。 正則表示式定義: 正如它的名字一樣,是描述了一個規則,通過這個規則可以匹配一
正則表示式(regular expression)
正則表示式 什麼是正則表示式? 正則表示式:用於匹配規律規則的表示式,是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個“規則字串”,用來表達對字串的一種過
萬用字元(WildCard)與正則表示式(Regular Expression)
1.萬用字元(wildcard)就是萬用牌的意思 * 表示匹配任意長度的任意字元 ? 表示匹配一個任意字元 […]則表示匹配括號中列出的字元中的任意一個 [!..]表示不
正則表示式(Regular Expression)高階使用(文字編輯器,資料庫,Java)
一、開發環境和文字編輯器中使用正則表示式 eclipse Notepad++ EditPlus UltraEdit 二、資料庫中也可以使用正則表示式 Mysq15.5以上 Oracle10g以上 例如: SELECT prod_name
[Swift]LeetCode10. 正則表示式匹配 | Regular Expression Matching
Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'. '.' Matches any single cha
C++11新特性(74)-正則表示式庫(regular-expression library)
正則表示式(regular expression)是一種描述字元序列的方法,從C++11起,C++正則表示式庫(regular-expression library)成為新標準庫的一部分。 由於正則表示式本身就是一個非常龐大的系統,本文只介紹C++中使用正則表示式的小例子,淺嘗輒止。 基
【轉】Python之正則表示式(re模組)
【轉】Python之正則表示式(re模組) 本節內容 re模組介紹 使用re模組的步驟 re模組簡單應用示例 關於匹配物件的說明 說說正則表示式字串前的r字首 re模組綜合應用例項 參考文件 提示: 由於該站對MARKDOWN的表格支援的不是很好,所以本文中的表
LINUX學習—grep和正則表示式(LINUX三劍客)
grep, egrep, fgrep grep(GLOBAL RESEARCH) 是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。根據模式,搜尋文字,並將符合模式的文字行顯示出來。只能使用基本正則表示式 要使用擴充套件正則表示式需要-E pattern
正則表示式(re模組)
正則表示式,用來處理什麼的呢?它有什麼作用? 正則表示式是用來處理字串匹配的! 講正題之前我們先來看一個例子::https://reg.jd.com/reg/person?ReturnUrl=https%3A//www.jd.com/ 這是京東的註冊頁面,開啟頁面我們就看到這些要求輸入個
【LeetCode】#10正則表示式匹配(Regular Expression Matching)
【LeetCode】#10正則表示式匹配(Regular Expression Matching) 題目描述 給定一個字串 (s) 和一個字元模式 §。實現支援 ‘.’ 和 ‘’ 的正則表示式匹配。 ‘.’ 匹配任意單個字元。 '’ 匹配零個或多個前面的元素。 匹配應該覆蓋整個字串
常用的正則表示式(匹配數字)
正則表示式用於字串處理、表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。 匹配中文字元的正則表示式: [\u4e00-\u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
正則表示式(十五)——統計程式碼中的程式碼行、註釋行和空白行
package com.wy.regular; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFo
正則表示式(十七)——不捕獲分組
package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas
正則表示式(十八)——向前引用
package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas
正則表示式(十二)——字串的替換
1、查詢字串中的字串 package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern;
python中的正則表示式(re模組)
一、簡介 正則表示式本身是一種小型的、高度專業化的程式語言,而在python中,通過內嵌整合re模組,程式媛們可以直接呼叫來實現正則匹配。正則表示式模式被編譯成一系列的位元組碼,然後由用C編寫的匹配引擎執行。 二、正則表示式中常用的字元含義 1、普通字元和11個元字
JS正則表示式(火星文)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>正則表示式(火星文)</title> </head>
正則表示式(基礎2)
從左到右進行計算,並遵循優先順序順序,這與算術表示式非常類似。 相同優先順序的從左到右進行運算,不同優先順序的運算先高後低。下表從最高到最低說明了各種正則表示式運算子的優先順序順序: 運算子 描述 \ 轉義符 (), (?:), (?=), []
[轉]python中的正則表示式(re模組)
轉自:https://www.cnblogs.com/tina-python/p/5508402.html 一、簡介 正則表示式本身是一種小型的、高度專業化的程式語言,而在python中,通過內嵌整合re模組,程式媛們可以直接呼叫來實現正則匹配。正則表示式模式被編譯成一系列的位元組碼
15/18位身份證號碼正則表示式(詳細版)
xxxxxx yyyy MM dd 375 0 十八位 xxxxxx yy MM dd 75 0 十五位 地區:[1-9]\d{5} 年的前兩位:(18|19|([23]\