下載
文件
參與
說明
搜尋文件
2024 年 PHP Conference Japan
入門
簡介
簡單教學
語言參考
基本語法
類型
變數
常數
運算式
運算子
控制結構
函式
類別與物件
命名空間
列舉
錯誤
例外
纖程 (Fibers)
產生器 (Generators)
屬性 (Attributes)
參考說明
預定義變數
預定義例外
預定義介面和類別
預定義屬性
上下文選項和參數
支援的協定和包裝器
安全性
簡介
一般注意事項
以 CGI 執行檔安裝
以 Apache 模組安裝
工作階段安全性
檔案系統安全性
資料庫安全性
錯誤報告
使用者提交的資料
隱藏 PHP
保持更新
功能
使用 PHP 進行 HTTP 驗證
Cookie
工作階段
處理檔案上傳
使用遠端檔案
連線處理
持續性資料庫連接
命令列用法
垃圾回收
DTrace 動態追蹤
函式參考
影響 PHP 的行為
音訊格式操作
驗證服務
命令列專用擴充
壓縮和封存擴充
加密擴充
資料庫擴充
日期和時間相關擴充
檔案系統相關擴充
人類語言和字元編碼支援
影像處理和產生
郵件相關擴充
數學擴充
非文字 MIME 輸出
行程控制擴充
其他基本擴充
其他服務
搜尋引擎擴充
伺服器專用擴充
工作階段擴充
文字處理
變數和類型相關擴充
網路服務
僅適用於 Windows 的擴充
XML 操作
GUI 擴充
鍵盤快速鍵
?
此說明
j
下一個選單項目
k
上一個選單項目
g p
上一頁
g n
下一頁
G
捲動到底部
g g
捲動到頂部
g h
前往首頁
g s
前往搜尋
(目前頁面)
/
聚焦搜尋框
PCRE 函式 »
« 正規表示式模式中可能的修飾符
PHP 手冊
函式參考
文字處理
PCRE
PCRE 模式
變更語言
英文
德文
西班牙文
法文
義大利文
日文
巴西葡萄牙文
俄文
土耳其文
烏克蘭文
簡體中文
其他
與 Perl 的差異
這裡描述的差異是針對 Perl 5.005。
預設情況下,空白字元是 C 函式庫 isspace() 所辨識的任何字元,儘管可以編譯具有替代字元類型表的 PCRE。通常 isspace() 會比對空格、換頁、換行、歸位字元、水平定位字元和垂直定位字元。Perl 5 不再將垂直定位字元包含在其空白字元集中。Perl 文件中長期存在的 \v 跳脫字元實際上從未被辨識。然而,至少在 5.002 版之前,該字元本身被視為空白。在 5.004 和 5.005 中,它與 \s 不符。
PCRE 不允許在先行斷言 (lookahead assertion) 中使用重複量詞。Perl 允許,但它們的含義可能與您的預期不同。例如,(?!a){3} 並非斷言後三個字元都不是 "a"。它只是斷言後一個字元不是 "a",重複三次。
在否定先行斷言 (negative lookahead assertion) 中出現的捕獲子模式會被計數,但它們在偏移向量 (offsets vector) 中的項目永遠不會被設定。如果否定先行斷言只包含一個分支,Perl 會使用在斷言失敗(因此成功)之前匹配的任何此類模式來設定其數值變數。
雖然主字串中支援二進位零字元,但在模式字串中不允許使用,因為它是作為以零結尾的普通 C 字串傳遞的。可以使用跳脫序列 "\x00" 在模式中表示二進位零。
不支援下列 Perl 跳脫序列:\l、\u、\L、\U。事實上,這些是由 Perl 的一般字串處理實現的,並不是其模式匹配引擎的一部分。
不支援 Perl 的 \G 斷言,因為它與單一模式匹配無關。
顯然地,PCRE 不支援 (?{code}) 和 (??{code}) 建構。但是,它支援遞迴模式。
在撰寫本文時,Perl 5.005_02 中存在一些關於在模式部分重複時設定捕獲字串的古怪之處。例如,將 "aba" 與模式 /^(a(b)?)+$/ 匹配會將 $2 設定為值 "b",但將 "aabbaa" 與 /^(aa(bb)?)+$/ 匹配會使 $2 保持未設定狀態。但是,如果將模式更改為 /^(aa(b(b))?)+$/,則會設定 $2(和 $3)。在 Perl 5.004 中,兩種情況下都會設定 $2,而 PCRE 也是
如此
。如果將來 Perl 更改為不同的一致狀態,PCRE 也可能會隨之更改。
另一個尚未解決的差異是,在 Perl 5.005_02 中,模式 /^(a)?(?(1)a|b)+$/ 匹配字串 "a",而在 PCRE 中則不匹配。但是,在 Perl 和 PCRE 中,/^(a)?a/ 與 "a" 匹配都會使 $1 保持未設定狀態。
PCRE 提供了一些 Perl 正規表示式功能的擴充。
雖然回溯斷言 (lookbehind assertion) 必須匹配固定長度的字串,但回溯斷言的每個替代分支可以匹配不同長度的字串。Perl 5.005 要求它們都具有相同的長度。
如果設定了
PCRE_DOLLAR_ENDONLY
且未設定
PCRE_MULTILINE
,則 $ 元字元僅匹配字串的最末端。
如果設定了
PCRE_EXTRA
,則反斜線後接沒有特殊含義的字母會被視為錯誤。
如果設定了
PCRE_UNGREEDY
,則重複量詞的貪婪性會被反轉,也就是說,預設情況下它們不貪婪,但如果後面跟著一個問號,則它們是貪婪的。
發現問題了嗎?
瞭解如何改進此頁面
•
提交拉取請求
•
回報錯誤
+
新增註解
使用者貢獻的註解
此頁面沒有使用者貢獻的註解。
使用
↑
和
↓
鍵導覽 • 按
Enter
鍵選取 • 按
Esc
鍵關閉
沒有選取任何項目時,按下
Enter
鍵會使用 Google 搜尋