国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php正則表達式的介紹

2024-09-04 11:47:17
字體:
供稿:網(wǎng)友

今天看一個教程中有寫了一些正則表達式用法,里面主要講到了正則對字符的分割、匹配、查找、替換及一些入門知識與常用實例,所以整理過來與大家分享。

1.正則表達式的介紹和作用。

01.什么是正則表達式?

正則表達式(英語:Regular Expression、regex或regexp,縮寫為RE),也譯為正規(guī)表示法、常規(guī)表示法,在計算機科學中,是指一個用來描述或者匹配一系列符合某個句法規(guī)則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內(nèi)容。許多程序設計語言都支持利用正則表達式進行字符串操作。

規(guī)則語法

02.主要作用:分割、匹配、查找、替換。

表達式 匹配

/^s*$/  匹配空行。

/d{2}-d{5}/  驗證由兩位數(shù)字、一個連字符再加 5 位數(shù)字組成的 ID 號。

/<s*(S+)(s[^>]*)?>[sS]*<s*/1s*>/  匹配 HTML 標記。

2.PHP中兩個常用的正則函數(shù)。

preg_match 正則函數(shù),以perl預言為基礎。(比較效率,需要自定義一個開始結束符。)

ereg 正則函數(shù),以POSIX為基礎(Uniox、Script)。

3.正則表達式中包括的元素。

01.原子(普通字符:a-z A-Z 0-9、原子表、轉(zhuǎn)義字符)。

02.原子符(有特殊功能的字符)。

03.模式修正符(系統(tǒng)內(nèi)置部分模塊,類似函數(shù))。

4.正則表達式中的“原子”.

01.a-z A-Z _ 0-9   //最常見的字符。

02.(abc) (skd)   //用括號包含起來的單元符號。

03.[abcs] [^abd]   //貪婪匹配,用方括號包含的源自表,原子表中^代表排除或者相反內(nèi)容。

04.轉(zhuǎn)義字符(區(qū)分大小寫)

d 包含所有數(shù)字 == [0-9]。

D 非包含所有數(shù)字 == [^0-9]。

w 包含所有英文字符 == [a-zA-Z_0-9]。

W 非包含所有英文字符&數(shù)字,用來匹配特殊符號 == [^a-zA-Z_0-9]。

s 包含空白區(qū)域如回車、換行、分頁符 == [fnr]。

元字符

*  匹配前一個內(nèi)容的0次1次或多次

.  匹配內(nèi)容的0次1次或多次,但不包含回車換行

+ 匹配前一個內(nèi)容的1次或多次

?匹配前一個內(nèi)容的0次或1次

|  選擇匹配類似PHP中的| (因為這個運算符合是弱類型導致前面最為整體匹配)

^  匹配字符串首部內(nèi)容

$  匹配字符串尾部內(nèi)容

b 匹配單詞邊界,邊界可以是空格或者特殊符合

B 匹配除帶單詞邊界意外內(nèi)容

{m} 匹配前一個內(nèi)容的重復次數(shù)為M次

{m,} 匹配前一個內(nèi)容的重復次數(shù)大于等于M次

{m,n} 匹配前一個內(nèi)容的重復次數(shù)M次到N次

( ) 合并整體匹配,并放入內(nèi)存,可使用1 2…依次獲取

實例代碼如下:

  1. <?php 
  2. $mode = "#test#";   //這里可以用以上原子表進行匹配。 
  3. $str = "sdfsstestdf"
  4. if (preg_match($mode$str$end)) {   //mode正則模塊、str正則內(nèi)容、end正則結果,以數(shù)組輸出。 
  5.  echo "匹配成功" . $end[0]; 
  6. else { 
  7.  echo "匹配失敗"
  8. ?> 

常用正則

* 1、 ^S+[a-z A-Z]$ 不能為空 不能有空格 只能是英文字母

* 2、 S{6,} 不能為空 六位以上

* 3、 ^d+$ 不能有空格 不能非數(shù)字

* 4、 (.*)(.jpg|.bmp)$ 只能是jpg和bmp格式

* 5、 ^d{4}-d{1,2}-d{1,2}$ 只能是2004-10-22格式

* 6、 ^0$ 至少選一項

* 7、 ^0{2,}$ 至少選兩項

* 8、 ^[s|S]{20,}$ 不能為空 二十字以上

* 9、 ^+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(.|-))+[a-z]{2,6}$郵件

* 10、 w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*([,;]s*w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*)* 輸入多個地址用逗號或空格分隔郵件

* 11、 ^(([0-9]+))?[0-9]{7,8}$電話號碼7位或8位或前面有區(qū)號例如(022)87341628

* 12、 ^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(.[a-z A-Z 0-9 _]+)+(,[a-z A-Z 0-9 _]+@[a-z A-Z

0-9 _]+(.[a-z A-Z 0-9 _]+)+)*$

* 只能是字母、數(shù)字、下劃線;必須有@和.同時格式要規(guī)范 郵件

* 13 ^w+@w+(.w+)+(,w+@w+(.w+)+)*$上面表達式也可以寫成這樣子,更精練。

14 ^w+((-w+)|(.w+))*@w+((.|-)w+)*.w+$ [/size]

匹配中文字符的正則表達式: [u4e00-u9fa5]

匹配特定數(shù)字:

^[1-9]d*$    //匹配正整數(shù)

^-[1-9]d*$   //匹配負整數(shù)

^-?[1-9]d*$   //匹配整數(shù)

^[1-9]d* |0$  //匹配非負整數(shù)(正整數(shù) + 0)

^-[1-9]d* |0$   //匹配非正整數(shù)(負整數(shù) + 0)

^[1-9]d*.d* |0.d*[1-9]d*$   //匹配正浮點數(shù)

^-([1-9]d*.d* |0.d*[1-9]d*)$  //匹配負浮點數(shù)

^-?([1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0)$  //匹配浮點數(shù)

^[1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0$   //匹配非負浮點數(shù)(正浮點數(shù) + 0)

^(-([1-9]d*.d* |0.d*[1-9]d*)) |0?.0+ |0$  //匹配非正浮點數(shù)(負浮點數(shù) + 0)

由字母a~z(不區(qū)分大小寫)、數(shù)字0~9、減號或下劃線組成 

只能以數(shù)字或字母開頭和結尾 用戶名長度為4~18個字符

實例代碼如下:

^[a-za-z0-9]{1}[a-za-z0-9|-|_]{2-16}[a-za-z0-9]{1}$

用戶名為大寫字母小寫字母或下劃線,并以字母開頭,長度為6-20

實例代碼如下:

^[a-za-z][wd_]{5,19}

用戶名:包括英文小寫、漢字、數(shù)字、下劃線,不能全部是數(shù)字,下劃線不能在末尾

實例代碼如下:

/^[a-z0-9_u4e00-u9fa5]+[^_]$/g

utf-8下

preg_match("/^[a-z0-9_x80-xff]+[^_]$/g",$a);

gbk下:

preg_match("/^[a-z0-9_".chr(0xa1)."-".chr(0xff)."]+[^_]$/",$a)

郵箱,實例代碼如下:

  1. <?php 
  2. function is_email($email){ 
  3. return strlen($email) > 6 && preg_match(“/^[w-.]+@[w-]+(.w+)+$/“, $email); 
  4. ?> 

url地址,實例代碼如下:

  1. <?php 
  2. function autolink($foo)  
  3. {  
  4. $foo = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)''<a href="/1" mce_href="/1" target=_blank rel=nofollow>/1</a>'$foo);  
  5. ifstrpos($foo"http") === FALSE ){  
  6. $foo = eregi_replace('(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)''<a href="http:///1" mce_href="http:///1" target=_blank rel=nofollow >/1</a>'$foo);  
  7. }else{  
  8. $foo = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)''/1<a href="http:///2" mce_href="http:///2" target=_blank rel=nofollow >/2</a>'$foo);  
  9. }  
  10. return $foo;  
  11. ?> 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南岸区| 祁东县| 鄂州市| 喀什市| 陇西县| 东港市| 苏尼特右旗| 安远县| 乐平市| 六枝特区| 潮州市| 九龙城区| 安阳县| 清丰县| 卫辉市| 枣庄市| 文昌市| 万州区| 阳谷县| 法库县| 正镶白旗| 清丰县| 宾川县| 宜春市| 古交市| 石泉县| 霍林郭勒市| 东宁县| 东乡族自治县| 奈曼旗| 广州市| 哈密市| 桂平市| 峨边| 大连市| 张掖市| 利津县| 图木舒克市| 健康| 蛟河市| 马尔康县|