javascript之正則表示式的入門部分
js正則表示式
一般人看到正則表示式都會頭疼的要命,我的天,這是什麼鬼,羅馬文麼。額。。。。其實不是這樣的,它只是一些特殊字元的組合用來匹配字串的?那麼問題來了?為什麼要用正則表示式匹配?=>因為簡單,可以少寫程式碼。怎麼匹配?見下文。。。
1.表示式的定義 =>定義一般有兩種方式:
1.直接量=>如這種姿勢
var data = /^s/ console.log('sabc'.search(data))
控制檯顯示0
ps: // 上述程式碼是這樣的 直接量的正則匹配一般是以 / * 內容* / 兩個反斜槓裡面是要匹配的字串 而字串有專門用於匹配正則的函式,search是找出匹配字串的並返回它的位置,如果找不到就返回-1.而/s/ 是用於匹配s字母的 /^s/是匹配s開頭的字母的,所以返回0。
2.RegExp建構函式 定義 `
var data = new RegExp(“^s”),用法和第一種類似,
console.log(‘sabc’.search(data))`結果是一樣的。
如果還是不懂上面的^的用法,請往下看 =>嘻嘻嘻….
2.正則表示式字元的使用
當你讀程式碼讀到”+?
”是不是有點不理解?更有甚者其實是=> ‘$.*()[]{}+?.()[]{}+?()[]{}+?
………’,不要抑制自己,有不滿就要大聲的吼出來,這TM的是啥!!好了,發洩完了,我們又要繼續學習了。
1.直接量字元 字元匹配`
\o //NULL字元(\u0000)
\t //製表符(\u0009)
\n //換行符(\u000A)
\v //垂直製表符(\u000B)
\f //換頁符(\u000C)
\r //回車符(\u000D)`
\xnn //由十六進位制數nn指定的拉丁字元,例如,\x0A等價於\n
\uxxxx //由十六進位制數nnnn指定的Unicode字元,例如\u0009等價於\t
\cX //控制字元^X,例如\cJ等價於換行符\n
例子:恕我直言,這些字元比較奇葩,我一般都是匹配字串或者數字等等。用的比較少,不舉例子了
2.字元類 […] //方括號內的任意字元
[^…] //非方括號內的任意字元
. //除了換行符和其他的Unicode行終止符之外的任意字元
\w //任何ASCII字元組成的單詞,等價於[a-zA-Z0-9]
\W //任何非ASCII字元組成的單詞,等價於[^a-zA-Z0-9]
\s //任何Unicode空白字元
\S //任何非Unicode空白字元,注意\W和\S的區別
\d //任何ASCII數字,等價於[0-9]
\D //任何非ASCII數字,等價於[^0-9]
[\b] //退格直接量(特例)`
例子:let data2 = /abc\d/ console.log('abc11'.search(data2)) ==>值: 0
let data3 = /[abc]\d/ console.log('abc11'.search(data3)) ==>值: 2
為什麼呢?/abc/
是用來匹配字元abc這個大家肯定不會陌生了,\d
是用來匹配數字的,等價於[0-9]
所以控制檯返回0, 第二個[abc]
是用於匹配括號中所包含的字元,注意哦。是所包含的字元就是說他是一個組合{a,b,c}而不是abc這個要理解哈!
3.正則表示式 => 重複字元語法 ` 字元 含義
{n,m} //匹配前一項至少n次,最多m次
{n,} //匹配前一項至少n次
{n} //匹配前一項n次
? //匹配前一項0次或者1次,也就是說前一項是可選的,等價於{0,1}
+ //匹配前一項至少一次,等價於{1,}
* //匹配前一項至少0次,等價於{0,}
/\d{2,4}/
例子=>開始了=> 匹配 2-4個數字
/\w{3}\d/
=>匹配3個單詞和一個數字
/\s+java\s+/
=>匹配前後帶有一個或多個空格的字串java
/[^(]*/` =>匹配0項或多項非左括號開頭的字元
4.選擇分組和引用
或‘|’運算子的使用 => /ab|cd|ef/
表示可以匹配ab或cd或ef中的任意一個,注意的是,選擇項的匹配順序的從左到右,如果左邊的匹配,就會忽略了右邊的,其中最常見的就是圓括號 “()”的使用
作用1:,是把單獨的項,組合成子表示式,以便可以向處理單元那樣使用"|","*","+","?"等等
例子=> /abc(java)?/
可以用於匹配字串“abc”後面可以加上0個或一個字串“java”。
作用2:,完整模式中定義子模式,
let reg = /[a-z]+\d+/; console.log('$aaa1232'.search(reg))
,
這時,控制檯顯示的是1 ,不難看出,上面要匹配的是1到n個字元和1到n個數字。比如我們更關心匹配到的數字是什麼,那麼我們就可以這樣做
let reg = (/[a-z]+(\d+)/);
就可以獲取到數字了。
作用3:*()的引用,劃重點,這個認真看* ()可以用於同一正則後部引用前部的子表示式: 後面加上 \n
例子: /['"][^'"]*['"]/
這個表示式不難看出,要匹配的是“內容” 單引雙引先忽略
[^'"]表示除'"之外的一切
,而這時,我們想要匹配表示式
/(['"])[^'"]*\1/
這個\1是是什麼鬼??沒聽過啊?是這樣的\1引用的是第一個子表示式,也就是表示式裡面()裡的東東,但是他是對之前符合正則條件的字串再次就行篩選,我們這個表示式可以成兩部
(['"])[^'"]*
匹配到是"abc 和字元"123
然後在對第一個表示式即
\1=>['"]
進行再次的匹配篩選,就可以匹配到左側和右側的引號。
$%’abc’123
let reg1 = /(['"])[^'"]*\1/
let str =
console.log(str.search(reg1),str)
let reg2 = /(['"])[^\1]*\1/
console.log(str.search(reg2),str)
控制檯輸入結果均是二,但是我在犀牛書上看到的,說第一種(reg1)的那種,不符合正則規範,說是會報錯,然後並沒有,我個人覺得是沒什麼問題的,有問題歡迎大家給我留言,大家互相討論研究。
5.正則表示式的錨=>制定匹配位置
最常用的^符號/^s/=>匹配s開頭的字串
^ 匹配輸入字串開始的位置。
$ 匹配輸入字串結尾的位置。
\b 匹配一個字邊界,即字與空格間的位置。
\B 非字邊界匹配。
好了,正則大概講完70%了!哈哈,配個喜悅的圖片,然後繼續!
3.用於匹配正則是String方法
1.search()方法 =>它的引數是一個正則表示式,返回第一個與之匹配的起始位置
例子:“Javascript”.search(/script/)
這時控制檯會輸出5
2. replace()方法 有兩個引數,第一個是正則,第二個是字串。用法是
用以執行檢索然後替換,即找到匹配的正則,然後替換!
例子:let data3=/s/ console.log('s7s7sjdjsj'.replace(data3,'y'))
這時控制檯輸出 :y7s7sjdjsj
當然不會這麼簡單,其實還可以這麼用
let data3=/(s)/
console.log('s7s7sjdjsj'.replace(data3,'"$1"y')) 控制檯輸出 :"s"y7s7sjdjsj
該方法是找到正則匹配的字串並把第一個$1替換掉
3.match()方法=>他是正則表示式最常用的方法,只有唯一一個引數,並返回匹配的陣列集
例子:console.log("1s3a3c".match(/\d+/g)) //["1",'3','3']
4.最後一個是split() 用於分割"1a2a3a".split(/a/) //["1","2","3"]
回到家已經11點多了,熬夜總算把文章寫完,覺得有幫助打賞一下吧!
相關推薦
javascript之正則表示式的入門部分
js正則表示式 一般人看到正則表示式都會頭疼的要命,我的天,這是什麼鬼,羅馬文麼。額。。。。其實不是這樣的,它只是一些特殊字元的組合用來匹配字串的?那麼問題來了?為什麼要用正則表示式匹配?=>因為簡單,可以少寫程式碼。怎麼匹配?見下文。。。 1.表
JavaScript之正則表示式小記
文章目錄 JavaScript之正則表示式小記 轉義字元 兩種建立正則的方法 直接量語法 通過內建物件 RegExp 引數 表示式(方括號) 非 `^` 或 `|`
python入門之正則表示式
正則 通過re模組實現 eg:>>>import re >>>re.findall('abc',str_name) 在strname裡面完全匹配字串abc,返回列表['abc'],有多個則返回多
ES6標準入門之正則表示式的拓展
所謂正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。在之前使用基於Jquery庫開發專案的時候,用的正則表示式最多的就是一些輸入框的檢驗,比如檢驗
Python爬蟲入門七之正則表示式
在前面我們已經搞定了怎樣獲取頁面的內容,不過還差一步,這麼多雜亂的程式碼夾雜文字我們怎樣把它提取出來整理呢?下面就開始介紹一個十分強大的工具,正則表示式! 1.瞭解正則表示式 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些
Java入門到精通之正則表示式
Java 正則表示式正則表示式定義了字串的模式。正則表示式可以用來搜尋、編輯或處理文字。正則表示式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表示式例項 一個字串其實就是一個簡單的正則表示式,例如 Hello World 正則表示式匹配 "Hello
javascript簡單的正則表示式入門
內容來自百度前端學院javascript入門課程 基本的HTML: <textarea placeholder="請輸入字元並用不同符號分隔" rows="5" cols="20">
JavaScript正則表示式入門
工作中,正則表示式用的可能不是很多,一般使用的時候網上都有現成的例項,很少缺乏比較全面的理解。本文主要以匹配HTML標籤為例,簡述下正則表示式常用的功能點。匹配HTML片段如下: let str = ` <div id="app"> <div>21</d
javascript正則表示式入門先了解這些
## 前言 此內容由學習《JavaScript正則表示式迷你書(1.1版)》整理而來(於2020年3月30日看完)。此外還參考了MDN上關於Regex和String的相關內容,還有ECMAScript 6中關於正則的擴充套件內容,但不多。在文章末尾,會放上所有的連結。 迷你書共七章,我都做了相應的標號。
WPF中正則表示式的部分應用
無論在哪一種語言中,正則表示式在一定程度上都可以簡化程式碼程式設計。以下為在WPF中的部分應用。 如var sql = new System.Text.RegularExpressions.Regex("[\\r\\n]").Replace(str, " "); 表示對str字串中匹配換行符
Shell學習之正則表示式-----grep
grep 1. 作用 Linux系統中grep命令是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全域性正則表示式版本,它的使用許可權是所有使用者。 grep家族包括gre
JS應用之正則表示式
定義 正則表示式是用於匹配字串中字元組合的模式。 建立正則表示式 兩種方式: 1.new RegExp() let pattern1 = new RegExp('cat'); //第一個引數字串 let pattern2 = new RegEXP('cat', 'ig'); //第二個引數可選模式
【前端】JavaScript與正則表示式
一、正則表示式(regular expression簡稱res) 1、定義 一個正則表示式就是由普通字元以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的一個或多個字串。正則表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。 2、作用 正則表示式
【轉】Python之正則表示式(re模組)
【轉】Python之正則表示式(re模組) 本節內容 re模組介紹 使用re模組的步驟 re模組簡單應用示例 關於匹配物件的說明 說說正則表示式字串前的r字首 re模組綜合應用例項 參考文件 提示: 由於該站對MARKDOWN的表格支援的不是很好,所以本文中的表
http://www.cnblogs.com/chenmeng0818/p/6370819.html js中的正則表示式入門
http://www.cnblogs.com/chenmeng0818/p/6370819.html js中的正則表示式入門 什麼是正則表示式呢? 正則表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查一個字串是否含有某
js中string之正則表示式replace方法詳解
本篇文章主要介紹了js中string之正則表示式replace方法詳解,replace方法是javascript涉及到正則表示式中較為複雜的一個方法,嚴格上說應該是string物件的方法。 replace方法是javascript涉及到正則表示式中較為複雜的一個方法,嚴格上說應該是string物
js學習筆記之正則表示式
正則表示式:本質用來記錄文字規則的編碼 構成:由一些普通字元和元字元構成 建立正則表示式兩種方式: 1.通過建構函式定義:var 變數名 = new RegExp(/表示式/); 2.通過直接量定義: var 變數名 = /表示式/; \d表示數字 test()方法:正則物件方法,檢
[一天幾個linux命令] shell指令碼之正則表示式
shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語
week4:函式之正則表示式
一、正則表示式 string提供的方法是完全匹配 引入正則表示式是模糊匹配,內嵌在python中,通過呼叫Re模組來實現 二、字元匹配(普通字元,元字元): 普通字元:大多數字符和字母都會和自身匹配 re.findall('alex','yuanalesalexduye') ##
jmeter後置處理器之正則表示式
一、基本用法——提取某個值 場景:提取某個值,儲存成變數,供後面的介面使用 步驟: 1、執行指令碼,從響應結果中查詢要提取的值,找到左右邊界。 例如要獲取“patientInfoId”作為下一個請求的引數,"patientInfoId":"2c92e0e66680b7da01668