摘要:基本概念摘自元字符匹配除換行符以外的任意字符匹配字母或數(shù)字或下劃線或漢字匹配任意的空白符匹配數(shù)字匹配單詞的開始或結(jié)束匹配字符串的開始匹配字符串的結(jié)束示例匹配以字母開頭的單詞先是某個(gè)單詞開始處,然后是字母然后是任意數(shù)量的字母或數(shù)字,最后是單詞
基本概念
元字符摘自http://deerchao.net/tutorials/regex/regex.htm#negation
.匹配除換行符以外的任意字符
w匹配字母或數(shù)字或下劃線或漢字
s匹配任意的空白符
d匹配數(shù)字
匹配單詞的開始或結(jié)束
^匹配字符串的開始
$匹配字符串的結(jié)束
示例:
(1) aw 匹配以字母a開頭的單詞——先是某個(gè)單詞開始處(),然后是字母a,然后是任意數(shù)量的字母或數(shù)字(w),最后是單詞結(jié)束處()
(2) d+匹配1個(gè)或更多連續(xù)的數(shù)字
(3) w{6} 匹配剛好6個(gè)字符的單詞。
(4) ^d{5,12}$ 匹配有5到12個(gè)字符的QQ
*重復(fù)零次或更多次
+重復(fù)一次或更多次
?重復(fù)零次或一次
{n}重復(fù)n次
{n,}重復(fù)n次或更多次
{n,m}重復(fù)n到m次
字符類,表示一個(gè)字符[0-9]表示一個(gè)0到9的數(shù)字,和d同義
[a-z0-9A-Z_]表示一個(gè)數(shù)字或者大小寫字母或者_(dá)
(?0d{2}[)-]?d{8}表示0個(gè)或者1個(gè)(,接著是一個(gè)0,接著是兩個(gè)數(shù)字,接著是0個(gè)或者1個(gè))或者-,最后是8個(gè)數(shù)字
分枝條件 |匹配原理,從左至右,匹配成功之后就不會(huì)往后匹配
(1) 0d{2}-d{8}|0d{3}-d{7} 0開始兩個(gè)數(shù)字,然后-,然后是8個(gè)數(shù)字;或者0開始之后三個(gè)數(shù)字,然后-,然后是7個(gè)數(shù)字
(2) (?0d{2})?[- ]?d{8}|0d{2}[-]?d{8} 以0個(gè)或者1個(gè)(開始,然后是一個(gè)0,然后是兩個(gè)數(shù)字,然后是0個(gè)或者1個(gè)),然后是8個(gè)數(shù)字;或者0開始,然后是兩個(gè)數(shù)字,然后是0個(gè)或者1個(gè)-,然后是8個(gè)數(shù)字
(3) d{5}-d{4}|d{5}
(1) (d{1,3}.){3}d{1,3} 粗略的匹配IP地址,首先1-3個(gè)數(shù)字加.重復(fù)三次,然后是1-3個(gè)數(shù)字
(2) ((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?) 精細(xì)的匹配IP地址,使用()和|組合
W 匹配任意不是字母,數(shù)字,下劃線,漢字的字符
S 匹配任意不是空白符的字符
D 匹配任意非數(shù)字的字符
B 匹配不是單詞開頭或結(jié)束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou這幾個(gè)字母以外的任意字符
常見正則表達(dá)式身份證 /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/
郵件 /^w+([.-]?w+)@w+([.-]?w+)(.w{2,3})+$/
郵件二 /^(w)+(.w+)*@(w)+((.w+)+)$/;
^(0|1-9*)$ 只能輸入0和非0打頭的數(shù)字
^[-+]?d+(.d+)?$ 只能輸入實(shí)數(shù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/91310.html
摘要:前言寫這篇文章不是空穴來風(fēng),最近一個(gè)禮拜寫了一個(gè)簡單的腳本,用來處理上千個(gè)文件,以便于在某些特定字符的周圍添加標(biāo)記,先說一下我這個(gè)腳本使用場景主要是來識(shí)別中文具體做什么,之后會(huì)單獨(dú)寫一篇文章,此處只提該腳本作用,同時(shí)為不同的文件類型,包括, 前言 寫這篇文章不是空穴來風(fēng),最近一個(gè)禮拜寫了一個(gè)簡單的nodejs腳本,用來處理上千個(gè)文件,以便于在某些特定字符的周圍添加標(biāo)記,先說一下我這個(gè)腳...
摘要:負(fù)向先行斷言負(fù)前瞻語法作用匹配非表達(dá)式的前面內(nèi)容,不返回本身。我們來測試一下輸出結(jié)果嗯,這就是我們想要的了。 由于上一篇文章:《正則表達(dá)式真的很騷,可惜你不會(huì)寫!??!》 發(fā)表之后,不少網(wǎng)友說怎么沒講斷言沒講反向沒講貪婪....,甚至有老鐵說我褲子都脫了你就給講了一點(diǎn),哈哈哈,好吧,趁著山竹臺(tái)風(fēng)被迫放假在家的時(shí)間,把正則剩余的一些知識(shí)點(diǎn)給講一下,希望大家喜歡,希望這次脫褲子閱讀的老鐵可以...
摘要:對(duì)前端來說,使用的場景不多,但是像微信端的對(duì)話系統(tǒng)的表情包,就使用到了一個(gè)特定的規(guī)則。我是一個(gè)前端,工作年了,現(xiàn)在失業(yè),想進(jìn)入騰訊工作,這是我的聯(lián)系方式這個(gè)正則雖 我發(fā)現(xiàn)有個(gè)別字符被這個(gè)編輯器給刷掉了,但是灰色區(qū)域顯示正常,以灰色區(qū)域代碼為準(zhǔn) 什么玩意? 在我剛開始學(xué)習(xí)編程的時(shí)候,就聽過正則了,也聽說正則很牛逼,懂正則的更牛逼。但是苦于沒有人指點(diǎn),也沒有使用正則的場景,自己看教程又懵逼...
摘要:程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。其實(shí),正則表達(dá)式是一門語言,有自己獨(dú)特的語法,還擁有自己的解釋器。但是,如果正則表達(dá)式是動(dòng)態(tài)的,是根據(jù)變量來定義的,那么,只能使用第二種構(gòu)造函數(shù)的方式。 前言 作為一個(gè)程序員,要出去裝逼,手中必備的技能就是正則表達(dá)式。程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。 在js中,很多的場景需要去使用到它(畢竟,js剛剛誕生的...
閱讀 1033·2021-10-19 11:42
閱讀 2984·2021-09-10 10:51
閱讀 693·2021-09-09 09:33
閱讀 1772·2021-09-01 10:43
閱讀 2782·2019-08-30 12:43
閱讀 3529·2019-08-30 11:24
閱讀 2133·2019-08-30 10:56
閱讀 2786·2019-08-29 11:00