正則表達式30分鐘入門教程 --很不錯值得看,按部就班的,誘敵深刻,漸入佳境/美景
http://deerchao.net/tutorials/regex/regex-1.htmhtml
正則表達式30分鐘入門教程-BeJSON.com-- 這篇看着更好的樣子
http://www.bejson.com/knownjson/regexJiaocheng/正則表達式
----------------------算法
1.元字符介紹
"^" :匹配行或者字符串的起始位置
"$" :匹配行或字符串的結尾
"\w":匹配字母,數字,下劃線.
"\d" : 匹配數字
"." :匹配除了換行符之外的任何字符
"[abc]": 匹配包含括號內元素的字符
2.反義
"\W" :匹配任意不是字母,數字,下劃線 的字符
"\S" :匹配任意不是空白符的字符
"\D" :匹配任意非數字的字符
"\B" :匹配不是單詞開頭或結束的位置
"[^abc]" :匹配除了abc之外的任意字符
3.量詞
"*" :重複零次或更多
"+" :重複一次或更屢次
"?" :重複零次或一次
"{n,m}" :重複n到m次
"{n}" :重複n次
"{n,}" :重複n次或更屢次
4限定符
"*?" :重複任意次,但儘量少重複
"+?" :重複1次或更屢次,但儘量少重複
"??" :重複0次或1次,但儘量少重複
"{n,m}?" :重複n到m次,但儘量少重複
"{n,}?" :重複n次以上,但儘量少重複
------------ 找一些 字符串 到這個網站測試一下,json
在線正則表達式測試
http://tool.oschina.net/regex/# 網絡
\beos\.\w*\b 能夠帥選出全部 eos.開頭的測試
\b\w*.com 篩選出,com結尾的字符串,可是前面有兩個點的篩選不出來。
\b\w*\.com 查找 .com 結尾的
\b\w*\.\w*\.com 只有兩個點的.com結尾的被篩選出來
\b\w*\.\w*\.com|\b\w*\.com 一個點或兩個點都被篩選出來。
\bvip\.\w*\b 篩選vip. 開頭的網站
\b.*vip.*\b 包含vip的都會出來spa
\b.*[1-5]{1,12}.*\b 包含1到5數字的都出來.net
(\d{1,3}\.){3}\d{1,3} 匹配ip,但它也將匹配256.300.888.999這種 錯誤ip
正確的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。
理解這個表達式的關鍵是理解2[0-4]\d|25[0-5]|[01]?\d\d?,
2[0-4]\d|25[0-5]|[01]?\d\d? 第一種2開頭中間是0到4後面一個隨意;第二種25開頭,後面一位小於6;
第三種第一位0或1出現一次或者零次,第二位任意數字,第三位數字出現一次或者0次。excel
驗證手機號碼 實際代碼中 ^[1][3,4,5,7,8][0-9]{9}$這樣用,^$整個字符串中,1開頭,第二位34578中一個,後接9位數字
正則小應用:批量修改文件名 ---裏面有點代碼
https://zhuanlan.zhihu.com/p/41655899
if (/(\d+\.jpg)/.test(v)) { fs.rename(v, 'baluobo' + RegExp.$1.padStart(6, '0'), () => {}) }
這個正則 /(\d+\.jpg)/ 這個正則會將 .jpg 連帶前面的若干個數字一塊兒取出來放到組裏面。RegExp.$1 就取字符串出來,ru 10.jpg 9.jpg 。經過
padStart()js方法 向前補全字符串,例子中字符串總長度不夠補0 ,自行百度此方法。
拓展:看了這個例子讓我以爲用傳統的方式超級快完成。固然代碼是帥的,
結合下方的網友例子。
ren 命令excel
https://www.kafan.cn/A/x3974odonj.html
用cmd dir 輸出此目錄全部文件名,複製到xls中,拼接成: ren 重命名命令。批量執行。完成。
ren 拔蘿蔔-10.jpg baluobo10.jpg
==拓展:
正則表達式引擎
正則表達式是一個很方便的匹配符號,但要實現這麼複雜,功能如此強大的匹配語法,就必需要有一套算法來實現,而實現這套算法的東西就叫作正則表達式引擎。簡單地說,實現正則表達式引擎的有兩種方式:DFA 自動機(Deterministic Final Automata 肯定型有窮自動機)和 NFA 自動機(Non deterministic Finite Automaton 不肯定型有窮自動機)。