正則表達式

正則表達式在開發(fā)中不會頻繁使用乳丰,但是需要使用的時候就需要去查閱,這里做一下學習筆記

正則表達式的作用

匹配 分割 替換 查找

正則表達式主要由兩部分組成潮改,pattern 和subject
pattern 是我們想要的結果集,subject 則是搜索的主體

其中pattern的一些知識 可以查閱 30分鐘入門正則表達式
推薦一個博客更簡單的學習正則表達式地址

//放一些常見的匹配

//匹配url
$pattern = '#^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])#i';

//匹配郵箱
$pattern = '/^[a-z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])+\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i';
php中的函數查閱官方文檔

正則匹配的主要工作,在于pattern的寫法上凝果,
以下做一些簡單的說明

//第一個簡單的php示例
$pattern = '/\d+/';//要查找的結果集 匹配一個以上的數字
$subject='dsd1230555d';//要查找的主體 字符串
$result=preg_match($pattern,$subject,$match);
var_dump($result);//打印是否匹配成功
var_dump($match);//打印匹配結果

//第一個簡單的js 示例
var subject='123ddd';
var pattern =/\d+/;//不要加引號 js中的分隔符是/
var res = subject.match(pattern);//簡單的理解是,js的字符串 繼承自string 擁有string的函數
console.log(res);

元字符


.   匹配除換行符以外的任意字符
\w  匹配字母或數字或下劃線或漢字
\s  匹配任意的空白符
\d  匹配數字 
\b  匹配單詞的開始或結束
^   匹配字符串的開始
$   匹配字符串的結束

限定符

*   重復零次或更多次
+   重復一次或更多次
?   重復零次或一次
{n} 重復n次
{n,}    重復n次或更多次
{n,m}   重復n到m次

用于睦尽,限定該字符前的
[0-9]{10}//匹配10個數字
\d{10}//匹配10個數字
[aeiou]{3,}匹配3個及其以上的aeiou

范圍符

[0-9] 等價于 \d
[a-z0-9A-Z_] 等價于 \w
[aeios] 匹配aeiou 中任意一個

分支條件

a|b|c 匹配字符中的a 或者b 或者c

分組

重復單個字符(直接在字符后面加上限定符就行了)器净;但如果想要重復多個字符又該怎么辦?你可以用小括號來指定子表達式(也叫做分組)当凡,然后你就可以指定這個子表達式的重復次數了

$pattern = '#([a]\d)+#';// 匹配a1a2
$subject='a1a2345677444dd33344';//
$result=preg_match($pattern,$subject,$match);

反義

有時需要查找不屬于某個能簡單定義的字符類的字符山害。比如想查找除了數字以外,其它任意字符都行的情況沿量,這時需要用到反義

\W  匹配任意不是字母浪慌,數字,下劃線朴则,漢字的字符
\S  匹配任意不是空白符的字符
\D  匹配任意非數字的字符
\B  匹配不是單詞開頭或結束的位置
[^x]    匹配除了x以外的任意字符
[^aeiou]    匹配除了aeiou這幾個字母以外的任意字符

常見匹配

(?:exp) 匹配exp 且包含exp
preg_match('#Windows(?:2000|XP|7)#', 'WindowsXP2000', $matchResult1);
//打印為 WindowsXP

(?=exp) 匹配exp前面的 
preg_match('#Windows(?=2000|XP|7)#', 'WindowsXP2000', $matchResult1);
//打印為 Windows

(?<=exp)匹配exp后面的
preg_match('#(?<=2000|XP|7)ssss#', 'WindowsXPssss', $matchResult1);
//打印為 ssss
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末眷射,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子佛掖,更是在濱河造成了極大的恐慌妖碉,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芥被,死亡現(xiàn)場離奇詭異欧宜,居然都是意外死亡,警方通過查閱死者的電腦和手機拴魄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門冗茸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匹中,你說我怎么就攤上這事夏漱。” “怎么了顶捷?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵挂绰,是天一觀的道長。 經常有香客問我服赎,道長葵蒂,這世上最難降的妖魔是什么交播? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮践付,結果婚禮上秦士,老公的妹妹穿的比我還像新娘。我一直安慰自己永高,他們只是感情好隧土,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著命爬,像睡著了一般次洼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遇骑,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天卖毁,我揣著相機與錄音,去河邊找鬼落萎。 笑死亥啦,一個胖子當著我的面吹牛,可吹牛的內容都是我干的练链。 我是一名探鬼主播翔脱,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媒鼓!你這毒婦竟也來了届吁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤绿鸣,失蹤者是張志新(化名)和其女友劉穎疚沐,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體潮模,經...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡亮蛔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了擎厢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片究流。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖动遭,靈堂內的尸體忽然破棺而出芬探,到底是詐尸還是另有隱情,我是刑警寧澤厘惦,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布偷仿,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏炎疆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一国裳、第九天 我趴在偏房一處隱蔽的房頂上張望形入。 院中可真熱鬧,春花似錦缝左、人聲如沸亿遂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛇数。三九已至,卻和暖如春是越,著一層夾襖步出監(jiān)牢的瞬間耳舅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工倚评, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浦徊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓天梧,卻偏偏與公主長得像盔性,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子呢岗,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344