在學習PHP正規表示式修飾符之前先來理解下貪婪模式,前面在元字符中提到過"?"還有一個重要的作用,即"貪婪模式",什麼是"貪婪模式"呢?
PHP正規表示式貪婪模式:
例如我們要匹配以字母"a"開頭字母"b"結尾的字串,但是需要匹配的字串在"a"後面含有很多"b",例如"a bbbbbbbbbbbbbbbbb",那正規表示式是會符合第一個"b"還是最後一個"b"呢?如果你使用了貪婪模式,那麼會匹配到最後一個"b",反之只是匹配到第一個"b"。
PHP正規表示式貪婪模式使用實例:
/a.+?b/
/a.+b/U
#比較不使用貪婪模式的實例如下:
/a.+b/
上面使用了一個修飾符U,詳見關於修飾符的介紹。
PHP正規表示式 /i, /is, /s, /isU等 都是些什麼呢?
i 不區分大小寫
s 模式中的圓點元字符(.)匹配所有的字符,包括換行符
x 模式中的空白字符除了被轉義的或在字符類中的以外完全被忽略,在未轉義的字符類之外的# 以及下一個換行符之間的所有字符,包括兩頭,也都被忽略
A (PCRE_ANCHORED) 如果設定了此修正符,模式被強制為“anchored”,即強制僅從目標字串的開頭開始匹配即自動在模式開頭加上^。
D (PCRE_DOLLAR_ENDONLY) 如果設定了此修正符,模式中的美元元字元只會符合目標字串的結尾。沒有此選項時,如果最後一個字元是換行符的話,美元符號也會匹配此字元之前(但不會匹配 任何其它換行符之前)。如果設定了 m 修正符號則忽略此選項。 Perl 中沒有與其等價的修正符號。 S 當一個模式將被使用若干次時,為加速匹配起見值得先對其進行分析。如果設定了此修正符則會進行額外的分析。目前,分析一個模式僅對沒有單一固定起始字元的 non-anchored 模式有用。
U (PCRE_UNGREEDY) 本修正符號反轉了符合數量的值使其不是預設的重複,而變成在後面跟上「?」才變得重複。這和 Perl 不相容。也可以透過在模式之中設定 (?U) 修正符號來啟用此選項。
X (PCRE_EXTRA) 此 修正符號啟用了一個 PCRE 中與 Perl 不相容的額外功能。模式中的任何反斜線後面跟上一個沒有特殊意義的字母導致一個錯誤,從而保留此組合以備將 來擴充。預設情況下,和 Perl 一樣,一個反斜線後面跟一個沒有特殊意義的字母被當成該字母本身。目前沒有其它特性受此修正符控制。即:貪婪模式,最大限度匹配如:/a[\w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,則匹配abce u (PCRE_UTF8) 此修正符啟用了一個PCRE中與Perl 不相容的額外功能。模式字串被當成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。
PHP正規表示式修飾符的理解:
在PHP正規表示式裡面的修飾符可以改變正規表示式的許多特性,使得正規表示式更適合你的需要(注意:修飾符對於大小寫是敏感的,這意味著"e"並不等於"E")。
PHP正規表示式修飾符的種類及介紹:
◆i :若在修飾符中加上"i",則正規會取消大小寫敏感性,即"a "和"A" 是一樣的。
◆m:預設的正規開始"^"和結束"$"只是對於正規字串如果在修飾符中加上"m",那麼開始和結束將會指字串的每一行:每一行的開頭就是"^",結尾就是"$"。
◆s:如果在修飾符中加入"s",那麼預設的"."代表除了換行符以外的任何字元將會變成任意字符,也就是包括換行符!
◆x:如果加上該修飾符,則表達式中的空白字元將會被忽略,除非它已經被轉義。
◆e:本修飾符僅對replacement有用,代表在replacement中作為PHP程式碼。
◆A:如果使用這個修飾符,那麼表達式必須是符合的字串中的開頭部分。比如說"/a/A"匹配"abcd"。
◆E:與"m"相反,如果使用這個修飾符,那麼"$"將匹配絕對字串的結尾,而不是換行符前面,預設就打開了這個模式。
◆U:跟問號的作用差不多,用來設定"貪婪模式"。
PHP正規表示式修飾符的相關內容就向你介紹到這裡,希望對你了解和掌握PHP正規表示式修飾符有所幫助。
以上是PHP正規表示式中修飾符有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。