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

首頁 > 編程 > Perl > 正文

解析posix與perl標準的正則表達式區別

2020-03-22 18:23:31
字體:
來源:轉載
供稿:網友
html' target='_blank'>正則表達式(Regular Expression,縮寫為regexp,regex或regxp),又稱正規表達式、正規表示式或常規表達式或正規化表示法或正規表示法,是指一個用 來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本 內容。許多程序設計語言都支持利用正則表達式進行字符串操作。例如,在Perl中就內建了一個功能強大的在正則表達式引擎。正則表達式這個概念最初是由 Unix中的工具軟件(例如sed和grep)普及開的。(摘自維基百科)PHP同時使用兩套正則表達式規則,一套是由電氣和電子工程師 協會(IEEE)制定的POSIX Extended 1003.2兼容正則(事實上PHP對此標準的支持并不完善),另一套來自PCRE(Perl Compatible Regular Expression)庫提供PERL兼容正則,這是個開放源代碼的軟件,作者為 Philip Hazel。使用POSIX兼容規則的函數有:
ereg_replace()
ereg()
eregi()
eregi_replace()
split()
spliti()
sql_regcase()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_ereg_search()
mb_ereg()
mb_eregi_replace()
mb_eregi()
mb_regex_encoding()
mb_regex_set_options()
mb_split()使用PERL兼容規則的函數有:
preg_grep()
preg_replace_callback()
preg_match_all()
preg_match()
preg_quote()
preg_split()
preg_replace()定界符:POSIX兼容正則沒有定界符,函數的相應參數會被認為是正則。PERL兼容正則可以使用任何不是字母、數字或反斜線(/)的字符作為定界符,如果作為定界符的字符必須被用在表達式本身中,則需要用反斜線轉義。也可以使用(),{},[] 和 作為定界符修正符:POSIX兼容正則沒有修正符。PERL兼容正則中可能使用的修正符(修正符中的空格和換行被忽略,其它字符會導致錯誤):i (PCRE_CASELESS):
匹配時忽略大小寫。m(PCRE_MULTILINE):
當設定了此修正符,行起始(^)和行結束($)除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符(/n)的之后和之前。s(PCRE_DOTALL):
如果設定了此修正符,模式中的圓點元字符(.)匹配所有的字符,包括換行符。沒有此設定的話,則不包括換行符。x(PCRE_EXTENDED):
如果設定了此修正符,模式中的空白字符除了被轉義的或在字符類中的以外完全被忽略。e:
如果設定了此修正符,preg_replace() 在替換字符串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,并用其結果來替換所搜索的字符串。 只有 preg_replace() 使用此修正符,其它 PCRE 函數將忽略之。A(PCRE_ANCHORED):
如果設定了此修正符,模式被強制為“anchored”,即強制僅從目標字符串的開頭開始匹配。D(PCRE_DOLLAR_ENDONLY):
如果設定了此修正符,模式中的行結束($)僅匹配目標字符串的結尾。沒有此選項時,如果最后一個字符是換行符的話,也會被匹配在里面。如果設定了 m 修正符則忽略此選項。S:
當一個模式將被使用若干次時,為加速匹配起見值得先對其進行分析。如果設定了此修正符則會進行額外的分析。目前,分析一個模式僅對沒有單一固定起始字符的 non-anchored 模式有用。U(PCRE_UNGREEDY):
使“?”的默認匹配成為貪婪狀態的。X(PCRE_EXTRA):
模式中的任何反斜線后面跟上一個沒有特殊意義的字母導致一個錯誤,從而保留此組合以備將來擴充。默認情況下,一個反斜線后面跟一個沒有特殊意義的字母被當成該字母本身。u(PCRE_UTF8):
模式字符串被當成UTF-8。邏輯區隔:
POSIX兼容正則和PERL兼容正則的邏輯區隔符號作用和使用方法完全一致:
[]:包含任選一操作的相關信息。
{}:包含匹配次數的相關信息。
():包含一個邏輯區間的相關信息,可被用來進行引用操作。
|:表示“或”,[ab]和a|b是等價的。元字符與“[]”相關:有兩組不同的元字符:一種是模式中除了方括號內都能被識別的,還有一種是在方括號“[]”內被識別的。POSIX兼容正則和PERL兼容正則“[]之外”“一致”的元字符:
/ 有數種用途的通用轉義符
^ 匹配字符串的開頭
$ 匹配字符串的結尾
? 匹配0或者1
* 匹配 0 個或多個前面指定類型的字符
+ 匹配 1 個或多個前面指定類型的字符POSIX兼容正則和PERL兼容正則“[]之外”“不一致”的元字符:
. PERL兼容正則匹配除了換行符外的任意一個字符
. POSIX兼容正則匹配任意一個字符POSIX兼容正則和PERL兼容正則“[]之內”“一致”的元字符:
/ 有數種用途的通用轉義符
^ 取反字符,但僅當其為第一個字符時有效
- 指定字符ASCII范圍,仔細研究ASCII碼,你會發現[W-c]等價于[WXYZ//^_`abc]POSIX兼容正則和PERL兼容正則“[]之內”“不一致”的元字符:
- POSIX兼容正則中[a-c-e]的指定會拋出錯誤。
- PERL兼容正則中[a-c-e]的指定等價于[a-e]。匹配次數與“{}”相關:
POSIX兼容正則和PERL兼容正則在匹配次數方面完全一致:
{2}:表示匹配前面的字符2次
{2,}:表示匹配前面的字符2次或多次,默認都是貪婪(盡可能多)的匹配
{2,4}:表示匹配前面的字符2次或4次邏輯區間與“()”相關:
使用()包含起來的區域是一個邏輯區間,邏輯區間的主要作用是體現出一些字符出現的邏輯次序,另一個用處就是可以用來引用(可以將此區間內的值引用給一個變量)。后一個作用比較奇特:
?php
$str = "http://www.163.com/";
// POSIX兼容正則:
echo ereg_replace("(.+)"," a href = //1 //1 /a ",$str);
// PERL兼容正則:
echo preg_replace("/(.+)/"," a href = $1 $1 /a ",$str);
// 顯示兩個鏈接
? 在引用的時候,括號是可以嵌套的,邏輯次序是按照“(”出現的次序來標定的。類型匹配:
POSIX兼容正則:
[:upper:]:匹配所有的大寫字母
[:lower:]:匹配所有的小寫字母
[:alpha:]:匹配所有的字母
[:alnum:]:匹配所有的字母和數字
[:digit:]:匹配所有的數字
[:xdigit:]:匹配所有的十六進制字符,等價于[0-9A-Fa-f]
[:punct:]:匹配所有的標點符號,等價于 [.,"'?!;:]
[:blank:]:匹配空格和TAB,等價于[ /t]
[:space:]:匹配所有的空白字符,等價于[ /t/n/r/f/v]
[:cntrl:]:匹配所有ASCII 0到31之間的控制符。
[:graph:]:匹配所有的可打印字符,等價于:[^ /t/n/r/f/v]
[:print:]:匹配所有的可打印字符和空格,等價于:[^/t/n/r/f/v]
[.c.]:功能不明
[=c=]:功能不明
[: :]:匹配單詞的開始
[: :]:匹配單詞的結尾PERL兼容正則(這里可以看出PERL正則的強大):
/a alarm,即 BEL 字符('0)
/cx "control-x",其中 x 是任意字符
/e escape('0B)
/f 換頁符 formfeed('0C)
/n 換行符 newline('0A)
/r 回車符 carriage return('0D)
/t 制表符 tab('0)
/xhh 十六進制代碼為 hh 的字符
/ddd 八進制代碼為 ddd 的字符,或 backreference
/d 任一十進制數字
/D 任一非十進制數的字符
/s 任一空白字符
/S 任一非空白字符
/w 任一“字”的字符
/W 任一“非字”的字符
/b 字分界線
/B 非字分界線
/A 目標的開頭(獨立于多行模式)
/Z 目標的結尾或位于結尾的換行符前(獨立于多行模式)
/z 目標的結尾(獨立于多行模式)
/G 目標中的第一個匹配位置PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕一区二区精品| 成人福利视频在线观看| 成人精品福利视频| 第一福利永久视频精品| 欧美重口另类videos人妖| 久久久欧美一区二区| 大桥未久av一区二区三区| 亚洲娇小xxxx欧美娇小| 欧美日韩国产区| 伊人久久久久久久久久久| 欧美性猛交xxxx乱大交3| 精品国产欧美一区二区三区成人| 亚洲国产天堂久久综合网| 日韩欧美精品免费在线| 欧美视频精品一区| 亚洲精品美女久久久久| 欧美成人黄色小视频| 亚洲专区中文字幕| 亚洲欧美另类自拍| 久久国产视频网站| 国产精品自在线| 欧美激情亚洲自拍| 久久久之久亚州精品露出| 精品国产乱码久久久久久天美| 欧美日韩精品在线观看| 九九精品视频在线观看| 国产欧美日韩丝袜精品一区| 欧美日韩爱爱视频| 欧美午夜激情视频| 亚洲激情第一页| 国产成人涩涩涩视频在线观看| 欧美性猛交xxxx免费看久久久| 国产亚洲欧洲黄色| 日韩激情在线视频| 日韩一区视频在线| 日本精品免费观看| 日韩最新中文字幕电影免费看| 欧美日韩999| 欧美成人精品影院| 欧美日韩国产影院| 九九九热精品免费视频观看网站| 26uuu亚洲国产精品| 97香蕉久久超级碰碰高清版| 91超碰caoporn97人人| 欧美日韩爱爱视频| 日本欧美一级片| 国产综合久久久久| 26uuu日韩精品一区二区| 一本久久综合亚洲鲁鲁| 九色成人免费视频| 欧美精品videos另类日本| 日韩电影中文字幕av| 视频直播国产精品| 精品高清一区二区三区| 亚洲黄色免费三级| 色在人av网站天堂精品| 日韩在线观看免费高清| 国产精品国模在线| 国产成人一区二区三区小说| 日本一欧美一欧美一亚洲视频| 国产女精品视频网站免费| 中文.日本.精品| 欧美主播福利视频| 久久五月天色综合| 亚洲第一区第一页| 久久色在线播放| 亚洲欧美一区二区精品久久久| 91成人在线视频| 欧美疯狂性受xxxxx另类| 久久久久一本一区二区青青蜜月| 亚洲第一福利在线观看| 国产玖玖精品视频| 91高清视频免费观看| 欧美日韩国产中文精品字幕自在自线| 日韩av在线网页| 91网在线免费观看| 国内精品久久久久影院优| 亚洲第一精品夜夜躁人人躁| 中文字幕av一区| 欧美与欧洲交xxxx免费观看| 久久亚洲欧美日韩精品专区| 成人国产精品久久久久久亚洲| 九九热99久久久国产盗摄| 欧美国产日产韩国视频| 国产精品免费一区二区三区都可以| 欧美国产日韩一区二区| 国产一区二区色| 亚洲精品aⅴ中文字幕乱码| 亚洲综合中文字幕在线观看| 91精品在线播放| 欲色天天网综合久久| 久久这里有精品视频| 欧美一区二区三区图| 国产精品视频永久免费播放| 欧美日韩精品在线播放| 精品国产依人香蕉在线精品| 久久久人成影片一区二区三区观看| 国产精品av网站| 97色在线视频| 欧美日韩免费在线| 国产一区二区丝袜高跟鞋图片| 97精品国产aⅴ7777| 97av在线视频| 国产美女久久精品| 亚洲激情视频在线| 中文字幕亚洲国产| 成人97在线观看视频| 亚洲欧美成人精品| 欧美精品在线网站| 亚洲丝袜一区在线| 美日韩丰满少妇在线观看| 欧美亚洲在线视频| 欧美中文字幕在线视频| 亚洲国产另类久久精品| 欧美在线国产精品| 久久91精品国产| 日韩中文字幕视频在线| 欧美一区二区影院| 国产精品一区二区3区| 欧美性高潮在线| 亚洲视频在线观看视频| 中文字幕亚洲二区| 国外成人在线播放| 日韩在线免费高清视频| 成人97在线观看视频| 欧美夫妻性生活xx| 国产成人精品在线| 国产精品人成电影| 日韩亚洲精品电影| 青青在线视频一区二区三区| 国产午夜精品美女视频明星a级| 日韩成人激情在线| 亚洲欧美日韩视频一区| 亚洲少妇激情视频| 成人国内精品久久久久一区| 亚洲国产精品va在线| 日韩欧美在线国产| 奇米影视亚洲狠狠色| 亚洲久久久久久久久久久| 亚洲韩国日本中文字幕| 精品一区二区三区四区在线| 欧美日韩成人黄色| 清纯唯美日韩制服另类| 亚洲性生活视频在线观看| 日韩中文字幕视频| 8090成年在线看片午夜| 最近2019中文免费高清视频观看www99| 国外色69视频在线观看| 成人激情视频小说免费下载| 亚洲电影av在线| 精品动漫一区二区| 97精品国产97久久久久久免费| 欧美激情视频在线观看| 欧美日韩国产成人| 国产精品视频久久久| 国产在线观看精品| 亚洲国产一区自拍| 日韩av在线免费看| 欧美日韩在线免费| 91在线高清免费观看| 青青精品视频播放| 久久久精品视频在线观看| 国产免费一区二区三区在线观看| 中文字幕av一区|