亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

PHP 正則表達式函數庫(兩套)

2020-03-16 21:15:07
字體:
來源:轉載
供稿:網友
正則表達式:用于描述字符排列和匹配模式的一種語法規則。它主要用于字符串的模式分割、匹配、查找及替換操作。
 
 
在PHP中有兩套正則表達式函數庫,兩者功能相似,只是執行效率略有差異: 
一套是由PCRE(Perl Compatible Regular Expression)庫提供的。使用“preg_”為前綴命名的函數; 
一套由POSIX(Portable Operating System Interface of Unix )擴展提供的(PHP默認)。使用以“ereg_”為前綴命名的函數; 
PHP中,正則表達式有三個作用: 
匹配,也常常用于從字符串中析取信息。 
用新文本代替匹配文本。 
將一個字符串拆分為一組更小的信息塊。 

一個正則表達式中至少包含一個原子。 
原子(普通字符,如英文字符) 
元字符(有特殊功用的字符) 
模式修正字符(對正則表達式語義的修正) 

原子(Atom) 
單個字符、數字,如a~z,A~Z,0~9。 
模式單元,如(ABC)可以理解為由多個原子組成的大的原子。 
原子表,如 [ABC]。 
重新使用的模式單元,如://1 
普通轉義字符,如:/d, /D, /w 
轉義元字符,如:/*,/. 

POSIX正則表達式 
POSIX正則表達式全稱為Portable Operating System Interface of Unix,意為UNIX可移植操作系實現接口。 

構造POSIX正則表達式的方法和創建數學表達式的方法一樣,也就是用多種元字符與操作符將小的表達式結合在一起來創建更大的表達式。 

元字符(Meta-character) 
元字符是用于構造規則表達式的具有特殊含義的字符。如果要在正則表達式中包含元字符本身,必須在其前加上”/”進行轉義 
元字符 說明 
* 0次、1次或多次匹配其前的原子 
+ 1次或多次匹配其前的原子 
? 0次或1次匹配其前的原子 
| 匹配兩個或多個選擇 列如 [1-9]|[a-b]|[A-Z] 與其中任何匹配為ture 
^ 匹配字符串串首的原子 例如 abscd===^afdgfgf 相匹配 
$ 匹配字符串串尾的原子 例如 dasdsv===v$ 
[] 匹配方括號中的任一原子 例如 s===[dsadas] 
[^] 匹配除方括號中的原子外的任何字符 例如 aaaaa===[dddd] 
{m} 表示其前原子恰好出現m次 
{m,n} 表示其前原子至少出現m次,至少出現n次(n>m) 
{m,} 表示其前原子出現不少于m次 
() 整體表示一個原子 
. 匹配除換行之外的任何一個字符 

^ $ 這兩個原字符在一起稱為定界 
abd===^abc$ 只有這樣才匹配 

模式匹配的順序 
順序 元字符 說明 
1 () 模式單元 
2 ?* +{} 重復匹配 
3 ^$ 邊界限制 
4 | 模式選擇 

POSIX正則表達式函數 
ereg()和eregi() 
ereg_replace()和eregi_replace() 
split()和spliti() 

ereg()和eregi()ereg()字符串匹配函數,eregi()是ereg()函數的忽略大小的版本 
語法格式:if (!ereg('^[^./][^/]*$', $userfile))//不匹配格式輸出die 

die('這是一個非法的文件名!'); 


ereg_replace()和eregi_replace(忽略大小寫)替換 
string eregi_replace (“正則表達式”,“目標替換字符”,“替換目標”) 
語法格式:$string = "This is a test"; 
echo str_replace(" is", " was", $string); 
echo ereg_replace("( )is", "//1was", $string);//1 為繼承第一個整體 
echo ereg_replace("(( )is)", "//2was", $string);//2繼承第二個整體 

split()和spliti(忽略大小寫)用正則表達式將字符串分割到數組中 
list:給數組中的值賦予一些變量 
語法格式:$date = "04/30/1973"; 
list($month, $day, $year) = split ('[/.-]', $date);//列出三個變數對應格式//以什么形式拆分 拆分誰 
echo "Month: $month; Day: $day; Year: $year<br /> 
"; 
輸出結果Month: 04; Day: 30; Year: 1973 

多行匹配 

$rows = file('php.ini'); //將php.ini文件讀到數組中 

//循環便歷 
foreach($rows as $line) 

if(trim($line)) 

//將匹配成功的參數寫入數組中 
if(eregi("^([a-z0-9_.]*) *=(.*)", $line, $matches)) //循環進行多行匹配 

$options[$matches[1]] = trim($matches[2]); 

unset($matches); 



//輸出參數結果 
print_r($options); 

PCRE正則表達式 
PCRE全稱為Perl Compatible Regular Expression,意思是Perl兼容正則表達式。 
在PCRE中,通常將模式表達式(即正則表達式)包含在兩個反斜線“/”之間,如“/apple/”。 

元字符(Meta-character) 
元字符 說明 
/A 匹配字符串串首的原子 
/Z 匹配字符串串尾的原子 
/b 匹配單詞的邊界 //bis/ 匹配頭為is的字符串 /is/b/ 匹配尾為is的字符串 //bis/b/ 定界 
/B 匹配除單詞邊界之外的任意字符 //Bis/ 匹配單詞“This”中的“is” 

/d 匹配一個數字;等價于[0-9] 
/D 匹配除數字以外任何一個字符;等價于[^0-9] 
/w 匹配一個英文字母、數字或下劃線;等價于[0-9a-zA-Z_] 
/W 匹配除英文字母、數字和下劃線以外任何一個字符;等價于[^0-9a-zA-Z_] 
/s 匹配一個空白字符;等價于[/f 
/t/v] 
/S 匹配除空白字符以外任何一個字符;等價于[^/f 
/t/v] 
/f 匹配一個換頁符等價于 /x0c 或 /cL 
匹配一個換行符;等價于 /x0a 或 /cJ 
匹配一個回車符等價于/x0d 或 /cM 
/t 匹配一個制表符;等價于 /x09/或/cl 
/v 匹配一個垂直制表符;等價于/x0b或/ck 
/oNN 匹配一個八進制數字 
/xNN 匹配一個十六進制數字 
/cC 匹配一個控制字符 

模式修正符(Pattern Modifiers) 
i -可同時匹配大小寫字母 
M -將字符串視為多行 
S -將字符串視為單行,換行符做普通字符看待,使“.”匹配任何字符 
X -模式中的空白忽略不計 
U -匹配到最近的字符串 
e -將替換的字符串作為表達使用 
格式:/apple/i匹配“apple”或“Apple”等,忽略大小寫。 /i 

PCRE的模式單元 
//1 提取第一位的屬性 
/^/d{2}([/W])/d{2}//1/d{4}$匹配“12-31-2006”、“09/27/1996”、“86 01 4321”等字符串。但上述正則表達式不匹配“12/34-5678”的格式。這是因為模式“[/W]”的結果“/”已經被存儲。下個位置“/1”引用時,其匹配模式也是字符“/”。 

當不需要存儲匹配結果時使用非存儲模式單元“(?:)” 
例如/(?:a|b|c)(D|E|F)//1g/ 將匹配“aEEg”。在一些正則表達式中,使用非存儲模式單元是必要的。否則,需要改變其后引用的順序。上例還可以寫成/(a|b|c)(C|E|F)/2g/。 

PCRE正則表達式函數 
preg_match()和preg_match_all() 
preg_quote() 
preg_split() 
preg_grep() 
preg_replace() 

preg_match()和preg_match_all()正則表達式的匹配 
語法格式:if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) { 
print "A match was found."; 
} else { 
print "A match was not found."; 


preg_quote()轉義正則表達式字符 
語法格式:$keywords = "$40 for a g3/400"; 
$keywords = preg_quote ($keywords, "/");//轉義誰 /轉義符號 
echo $keywords; 

preg_split()用正則表達式分割字符串 
preg_split()本函數與split函數功能一致。 
語法格式:$keywords = preg_split ("/[/s,]+/", "hypertext language, programming"); 
print_r($keywords); 

preg_grep()返回與模式匹配的數組單元 
語法格式:$fl_array = preg_grep ("/^(/d+)?/./d+$/", $array); 

preg_replace()執行正則表達式的搜索和替換 
語法格式: 
復制代碼代碼如下:

$string = "April 15, 2003"; 
$pattern = "/(/w+) (/d+), (/d+)/i"; 
$replacement = "/${1}1,/$3"; 
print preg_replace($pattern, $replacement, $string); 

preg_match_all()進行全局正則表達式匹配 
語法格式: 
復制代碼代碼如下:

preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", 
"<b>example: </b><div align=left>this is a test</div>", 
$out, PREG_PATTERN_ORDER); 
print $out[0][0].", ".$out[0][1]." 
"; 
print $out[1][0].", ".$out[1][1]." 
"; 

輸出結果:<b>example: </b>, <div align=left>this is a test</div> example: , this is a test

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产天堂网精品网站| 日本不卡视频在线播放| 欧美午夜激情视频| 久久网福利资源网站| 久久久av亚洲男天堂| 亚洲成人激情小说| 国产精品日韩在线播放| 热99久久精品| 成人夜晚看av| 亚洲精品视频免费在线观看| 亚洲一区二区免费在线| 精品国产91乱高清在线观看| 欧美极品少妇xxxxⅹ免费视频| 岛国视频午夜一区免费在线观看| 亚洲激情在线视频| 国产精品爽黄69天堂a| 最近2019中文字幕第三页视频| 美女精品视频一区| 91精品在线一区| 国产成人一区二区三区小说| 欧美性猛交xxxx偷拍洗澡| 亚洲精品天天看| 中文字幕少妇一区二区三区| 日本午夜精品理论片a级appf发布| 57pao成人永久免费视频| 亚洲网站在线播放| 日韩欧美在线视频日韩欧美在线视频| 亚洲国产成人精品女人久久久| 国产精品扒开腿做爽爽爽视频| 俺去啦;欧美日韩| 国产精品久久久久久久久久久久久| 国产精品96久久久久久| 不卡伊人av在线播放| 91在线精品视频| 国产精品电影观看| 欧美大秀在线观看| 成人激情综合网| 亚洲精品综合久久中文字幕| 欧美激情在线狂野欧美精品| 136fldh精品导航福利| 国产欧美精品日韩精品| 欧美日韩国产中字| 日韩欧美在线观看视频| 日韩三级影视基地| 亚洲天堂一区二区三区| www亚洲欧美| 国产精品久久久久久久久久东京| 国产亚洲精品久久久久久牛牛| 国产有码在线一区二区视频| 日韩美女在线观看一区| 伊人男人综合视频网| 欧美裸身视频免费观看| 欧美午夜xxx| 久久免费精品日本久久中文字幕| 久久免费福利视频| 国产精品久久久久久久久久小说| 亚洲美女又黄又爽在线观看| 欧美在线观看一区二区三区| 中文字幕精品久久久久| 国产视频精品久久久| 欧美高清无遮挡| 欧美制服第一页| 亚洲天堂男人天堂| 国产ts一区二区| 成人黄色av网| 91久久精品视频| 日韩av在线网站| 国产裸体写真av一区二区| 98视频在线噜噜噜国产| 国产精品日日摸夜夜添夜夜av| 日产精品久久久一区二区福利| 国产精品激情av电影在线观看| 亚洲精品日韩av| 国产拍精品一二三| 久久久久久久国产精品视频| 亚洲精品av在线播放| 国产午夜精品久久久| 久久久午夜视频| 亚洲跨种族黑人xxx| 日韩欧美精品网址| 伊人久久久久久久久久久久久| 欧美国产中文字幕| 精品福利视频导航| 91精品久久久久久久久| 日韩精品在线观看一区二区| 欧美高清视频在线| 欧美激情亚洲精品| 富二代精品短视频| 亚洲激情视频在线| 国产精品揄拍500视频| 久久久久久久国产精品视频| 国产亚洲精品久久| 久久久国产成人精品| 日韩电影免费观看在线| 91国自产精品中文字幕亚洲| 久久九九全国免费精品观看| 亚洲男人的天堂在线播放| 国产亚洲一区二区精品| 欧美在线日韩在线| 久久这里有精品视频| 日韩av电影在线免费播放| 亚洲精品免费一区二区三区| 欧美大尺度激情区在线播放| 亚洲国产另类 国产精品国产免费| 国产一区二区美女视频| 欧美综合激情网| 欧美有码在线视频| 韩曰欧美视频免费观看| 成人动漫网站在线观看| 久久久免费av| 成人精品久久一区二区三区| 久久精品中文字幕一区| 久久综合网hezyo| 深夜福利一区二区| 亚洲白虎美女被爆操| 亚洲影院色无极综合| 日本一区二区在线播放| 一本大道亚洲视频| 欧美精品一本久久男人的天堂| 日韩美女免费线视频| 久久理论片午夜琪琪电影网| 91国在线精品国内播放| 亚洲欧美精品一区| 欧美大成色www永久网站婷| 亚洲欧美国产精品| 青草热久免费精品视频| 日韩美女在线看| 久久久久久免费精品| 在线视频欧美日韩| 91精品在线看| 久久影院模特热| 亚洲女人天堂av| 国产精品免费久久久久影院| 国产精品视频导航| 在线播放日韩欧美| 日韩av综合网站| 欧美日本啪啪无遮挡网站| 欧美一级淫片aaaaaaa视频| 亚洲男人av电影| 日韩av片免费在线观看| 亚洲欧洲国产伦综合| 国产中文欧美精品| 亚洲国产精品一区二区三区| 亚洲欧美一区二区三区在线| 亚洲综合在线中文字幕| 欧美日韩国产第一页| 亚洲欧美日韩天堂| 日韩最新在线视频| 亚洲精品久久久久中文字幕欢迎你| 一区二区三区美女xx视频| 亚洲一区二区三区久久| 久久久成人精品| 亚洲新声在线观看| 91av在线视频观看| 懂色aⅴ精品一区二区三区蜜月| 欧美精品久久久久久久久久| 中文字幕亚洲欧美在线| 一区二区三区高清国产| 欧美一级片免费在线| 国产精品91久久| 91社影院在线观看| 精品视频www| 国产精品劲爆视频| 亚洲精品不卡在线|