public function linetouppercase($string))/e', "strtoupper('$1')", $string);
$string = preg_replace('/\_([a-z0-9])/e', "strtoupper('$1')", $string);
return $string; }
把中橫線和下劃線轉成大寫字母
i (pcre_caseless)
如果設定了這個修飾符,模式中的字母會進行大小寫不敏感匹配。
m (pcre_multiline)
預設情況下,pcre 認為目標字串是由單行字元組成的(然而實際上它可能會包含多行), "行首"元字元 (^) 僅匹配字串的開始位置, 而"行末"元字元 ($) 僅匹配字串末尾, 或者最後的換行符(除非設定了 d 修飾符)。這個行為和 perl 相同。 當這個修飾符設定之後,「行首」和「行末」就會匹配目標字串中任意換行符之前或之後,另外, 還分別匹配目標字串的最開始和最末尾位置。這等同於 perl 的 /m 修飾符。如果目標字串 中沒有 "\n" 字元,或者模式中沒有出現 ^ 或 $,設定這個修飾符不產生任何影響。
s (pcre_dotall)
如果設定了這個修飾符,模式中的點號元字元匹配所有字元,包含換行符。如果沒有這個 修飾符,點號不匹配換行符。這個修飾符等同於 perl 中的/s修飾符。 乙個取反字元模擬如 [^a] 總是匹配換行符,而不依賴於這個修飾符的設定。
x (pcre_extended)
如果設定了這個修飾符,模式中的沒有經過轉義的或不在字元類中的空白資料字元總會被忽略, 並且位於乙個未轉義的字元類外部的#字元和下乙個換行符之間的字元也被忽略。 這個修飾符 等同於 perl 中的 /x 修飾符,使被編譯模式中可以包含注釋。 注意:這僅用於資料字元。 空白字元 還是不能在模式的特殊字串行中出現,比如序列 (?( 引入了乙個條件子組(譯註: 這種語法定義的 特殊字串行中如果出現空白字元會導致編譯錯誤。 比如(?(就會導致錯誤)。
e (preg_replace_eval)
如果這個修飾符設定了, preg_replace() 在進行了對替換字串的 後向引用替換之後, 將替換後的字串作為php **評估執行(eval 函式方式),並使用執行結果 作為實際參與替換的字串。單引號、雙引號、反斜線(\)和 null 字元在 後向引用替換時會被用反斜線轉義.
a (pcre_anchored)
如果設定了這個修飾符,模式被強制為"錨定"模式,也就是說約束匹配使其僅從 目標字串的開始位置搜尋。這個效果同樣可以使用適當的模式構造出來,並且 這也是 perl 種實現這種模式的唯一途徑。
d (pcre_dollar_endonly)
如果這個修飾符被設定,模式中的元字元美元符號僅僅匹配目標字串的末尾。如果這個修飾符 沒有設定,當字串以乙個換行符結尾時, 美元符號還會匹配該換行符(但不會匹配之前的任何換行符)。 如果設定了修飾符m,這個修飾符被忽略. 在 perl 中沒有與此修飾符等同的修飾符。 s
當乙個模式需要多次使用的時候,為了得到匹配速度的提公升,值得花費一些時間 對其進行一些額外的分析。如果設定了這個修飾符,這個額外的分析就會執行。當前, 這種對乙個模式的分析僅僅適用於非錨定模式的匹配(即沒有單獨的固定開始字元)。
u (pcre_ungreedy)
這個修飾符逆轉了量詞的"貪婪"模式。 使量詞預設為非貪婪的,通過量詞後緊跟? 的方式可以使其成為貪婪的。這和 perl 是不相容的。 它同樣可以使用 模式內修飾符設定 (?u)進行設定, 或者在量詞後以問號標記其非貪婪(比如.*?)。
x (pcre_extra)
這個修飾符開啟了 pcre 與 perl 不相容的附件功能。模式中的任意反斜線後就 ingen 乙個 沒有特殊含義的字元都會導致乙個錯誤,以此保留這些字元以保證向後相容性。 預設情況下,在 perl 中,反斜線緊跟乙個沒有特殊含義的字元被認為是該字元的原文。 當前沒有其他特性由這個修飾符控制。
j (pcre_info_jchanged)
內部選項設定(?j)修改本地的pcre_dupnames選項。允許子組重名, (譯註:只能通過內部選項設定,外部的 /j 設定會產生錯誤。)
u (pcre_utf8)
此修正符開啟乙個與 perl 不相容的附加功能。 模式字串被認為是utf-8的. 這個修飾符 從 unix 版php 4.1.0 或更高,win32版 php 4.2.3 開始可用。 php 4.3.5 開始檢查模式的 utf-8 合法性。
正則轉換函式命名方式 php sir
public function linetouppercase string e strtoupper 1 string string preg replace a z0 9 e strtoupper 1 string return string 把中橫線和下劃線轉成大寫字母 i pcre case...
golang正則之命名分組方式
正則中有分組這個功能,在golang中也可以使用命名分組。場景還原如下 有一行文字,格式為 姓名 年齡 郵箱位址 請將其轉換為乙個map 實現如下 str alice 20 alice gmail.com 使用命名分組,顯得更清晰 re regexp.mustcompile p a za z s p...
筆記 正則命名捕獲
參考 命名捕獲分組 總結 123 match 1 2 3 結果中返回乙個滿足條件的字串,然後根據括號對這個字串進行拆分,乙個括號就相當於push 一下 這時候無意義的下標對於後期在失去注釋,或無意義 不全的注釋的狀態下維護,會讓我們的維護增加難度 所以在括號內容前以?名 的形式增加乙個申明,例如 1...