日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php pcre 什么用,PHP—PCRE正则表达式性能 - pcre

發(fā)布時(shí)間:2023/12/20 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php pcre 什么用,PHP—PCRE正则表达式性能 - pcre 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

...xvf nginx-1.8.1.tar.gz

$ cd nginx-1.8.1

2. 安裝依賴:pcre1) 首次嘗試安裝$ cd ..

$ wget -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.gz

$ tar -xvf pcre2-10.21.tar.gz

$ ./configure

$ make & make install

$ pcre2grep --hel...

模式中一些項(xiàng)可能比其他一些更加高效。 比如使用 [aeiou] 這樣的字符類會(huì)比可選路徑 (a|e|i|o|u) 高效。 一般而言, 用盡可能簡(jiǎn)單的構(gòu)造描述需求是最搞笑的。 Jeffrey Friedl 書(精通正則表達(dá)式)中包含了很多關(guān)于正則表達(dá)式性能的討論。

當(dāng)一個(gè)模式以 .* 開(kāi)始并且設(shè)置了 PCRE_DOTALL 選項(xiàng)時(shí),模式通過(guò)PCRE隱式錨定, 因?yàn)樗梢云ヅ渥址拈_(kāi)始。然而,如果 PCRE_DOTALL 沒(méi)有設(shè)置, PCRE 不能做這個(gè)優(yōu)化,因?yàn)?元字符不能匹配換行符,如果目標(biāo)字符串包含換行符, 模式可能會(huì)從一個(gè)換行符后面開(kāi)始匹配,而不是最開(kāi)始位置。 比如,模式 (.*) second 匹配目標(biāo)字符串 ”first\nand second”(\n 是一個(gè)換行符)第一個(gè)捕獲子組結(jié)果是 ”and”。為了這樣做, PCRE 嘗試從目標(biāo)字符串中每個(gè)換行符后開(kāi)始匹配。

如果你使用模式匹配沒(méi)有換行符的目標(biāo)字符串, 可以通過(guò)設(shè)置 PCRE_DOTALL 或以 ^.* 開(kāi)始的模式明確指示錨定以獲取最佳性能。 這樣節(jié)省了 PCRE 沿目標(biāo)字符串掃描查找換行符重新開(kāi)始的時(shí)間。

小心模式中的無(wú)限重復(fù)嵌套。這在應(yīng)用到不匹配字符串時(shí)可能會(huì)導(dǎo)致運(yùn)行時(shí)間很長(zhǎng)。 考慮模式片段 (a+)*。

這個(gè)模式可以有 33 種方式匹配 ”aaaa”, 并且這個(gè)數(shù)字會(huì)隨著字符串的長(zhǎng)度的增加迅速增加. (*重復(fù)可以匹配0,1,2,3,4次, 并且除了0外每種情況+都有不同次數(shù)的匹配對(duì)應(yīng))。 當(dāng)模式的剩余部分導(dǎo)致整個(gè)匹配失敗的時(shí)候, PCRE原則上回嘗試每種可能的變化, 這將會(huì)非常耗時(shí)。

對(duì)于一些簡(jiǎn)單的情況的優(yōu)化是像 (a+)*b 這樣緊接著使用原文字符串.。 在著手正式匹配工作之前,PCRE 檢查目標(biāo)字符串后面是否有 ”b” 字符, 如果沒(méi)有就立即失敗。然而當(dāng)緊接著沒(méi)有原文字符的時(shí)候這個(gè)優(yōu)化是不可用的。 你可以比較觀察 (a+)*\d 和上面模式的行為差異。 前者在應(yīng)用到整行的 ”a” 組成的字符串時(shí)幾乎是立即報(bào)告失敗, 而后者在目標(biāo)字符串長(zhǎng)于 20 個(gè)字符時(shí),時(shí)間消耗就相當(dāng)可觀。

...xvf nginx-1.8.1.tar.gz

$ cd nginx-1.8.1

2. 安裝依賴:pcre1) 首次嘗試安裝$ cd ..

$ wget -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.ta

...c-c++ libtool openssl openssl-devel

二、首先要安裝 PCREPCRE 作用是讓 Ngnix 支持 Rewrite 功能。1,下載 PCRE 安裝包

[root@bogon src]# wget http://downloads.sourceforge.ne

linux下使用xampp出現(xiàn)php的pcre錯(cuò)誤報(bào)這個(gè)錯(cuò):this version of PCRE is not compiled with PCRE_UTF8 support at offset 0裝的是最新版的xampp,網(wǎng)上說(shuō)是安裝的pcre 不兼容UTF8.只能重新編譯安裝pcre,在編譯

本文章介紹了關(guān)于preg_match正則匹配提示pcre.backtrack_limit解決辦法,有需要的朋友可參考一下。

用preg_match正則提取目標(biāo)內(nèi)容,死活有問(wèn)題,代碼測(cè)得死去活來(lái)。

后來(lái)懷疑PHP 的preg_match有字符串長(zhǎng)度限制,果然,發(fā)現(xiàn)&ld...

...殊的意義。$ 的意義可以通過(guò)在編譯或匹配時(shí)設(shè)置 PCRE_DOLLAR_ENDONLY 改變?yōu)橹黄ヅ渥址┪病?這不會(huì)影響 \Z 斷言的行為。^ 和 $ 字符的意義在 PCRE_MULTILINE 選項(xiàng)被設(shè)置時(shí)會(huì)發(fā)生變化。 當(dāng)在這種情況下時(shí), 它們匹配每一...

...># ./configure

......(很多輸出)......

checking for PCRE libraryin /usr/include/pcre/ ... not found

checking for PCRE libraryin /usr/pkg/ ... not found

...利通過(guò),但是在make時(shí)報(bào)錯(cuò),

錯(cuò)誤提示:make:*** [ext/pcre/pcrelib/pcre_chartables.lo] Error 1。

到ext/pcre/pcrelib目錄中查看,沒(méi)有此文件,但是有一個(gè)pcre_chartables.loT文件,將pcre_chartabl

...達(dá)式性能的討論。當(dāng)一個(gè)模式以 .* 開(kāi)始并且設(shè)置了 PCRE_DOTALL 選項(xiàng)時(shí),模式通過(guò)PCRE隱式錨定, 因?yàn)樗梢云ヅ渥址拈_(kāi)始。然而,如果 PCRE_DOTALL 沒(méi)有設(shè)置, PCRE 不能做這個(gè)優(yōu)化,因?yàn)?元字符不能匹配換行符,如果目標(biāo)...

linux下使用xampp出現(xiàn)php的pcre錯(cuò)誤報(bào)這個(gè)錯(cuò):this version of PCRE is not compiled with PCRE_UTF8 support at offset 0裝的是最新版的xampp,網(wǎng)上說(shuō)是安裝的pcre 不兼容UTF8.只能重新編譯安裝pcre,在編譯

PHP中對(duì)于正則處理文本提供了兩種方式,一種是PCRE方式(PCRE庫(kù)是一個(gè)實(shí)現(xiàn)了與perl 5在語(yǔ)法和語(yǔ)義上略有差異(詳見(jiàn)下文)的正則表達(dá)式模式匹配功能的函數(shù)集. 當(dāng)前的實(shí)現(xiàn)對(duì)應(yīng)于perl 5.005.);另一個(gè)是POSIX方式。PCRE 函數(shù)庫(kù)中...

總結(jié)

以上是生活随笔為你收集整理的php pcre 什么用,PHP—PCRE正则表达式性能 - pcre的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。