當前位置:首頁 » 編程語言 » php正則表達式語法

php正則表達式語法

發布時間: 2025-08-09 02:39:15

php驗證密碼 必須為6-16位字母數字元號組合, 正則表達式 著急,在線等

為了確保密碼的安全性,建議使用正則表達式來驗證密碼長度和字元類型。一個有效的密碼應該包含6到16個字元,這些字元可以是字母、數字、下劃線、中劃線和點。這里提供一個正則表達式示例:

$pattern="/^[\w-\.]{6,16}$/";

這個正則表達式的含義是,匹配一個由6到16個字元組成的字元串,這些字元可以是字母(包括大小寫)、數字、下劃線(_)、中劃線(-)和點(.)。使用這個正則表達式可以有效地驗證密碼是否符合要求。

如果你需要在代碼中應用這個正則表達式,可以使用以下方式:

if (preg_match($pattern, $password)) {

// 密碼符合要求

} else {

// 密碼不符合要求

}

這種方式可以幫助你確保用戶輸入的密碼符合安全標准,從而提高系統的安全性。

需要注意的是,在實際應用中,除了長度和字元類型之外,還可以結合其他規則來增強密碼的安全性。例如,可以要求密碼中包含大寫字母、小寫字母和數字,或者禁止使用常見的弱密碼等。

通過這種方式,可以有效地提高密碼的強度,減少被破解的風險。

⑵ 求一條php做的正則表達式

PHP中的正則式使用

PHP被大量的應用於Web的後台CGI開發,通常是在用戶數據數據之後得出某種結果,但是如果用戶輸入的數據不正確,就會出現問題,比如說某人的生日是」2月30日」!那應該怎麼樣來檢驗暑假是否正確呢? 在PHP中加入了正則表達式的支持,讓我們可以十分方便的進行數據匹配。
2 什麼是正則表達式:
簡單的說,正則表達式是一種可以用於模式匹配和替換的強大工具。在幾乎所有的基於UNIX/LINUX系統的軟體工具中找到正則表達式的痕跡,例如:Perl或PHP腳本語言。此外,javaScript這種客戶端的腳本語言也提供了對正則表達式的支持,現在正則表達式已經成為了一個通用的概念和工具,被各類技術人員所廣泛使用。
在某個Linux網站上面有這樣的話:」如果你問一下Linux愛好者最喜歡什麼,他可能會回答正則表達式;如果你問他最害怕什麼,除了繁瑣的安裝配置外他肯定會說正則表達式。」
正如上面說的,正則表達式看起來非常復雜,讓人害怕,大多數的PHP初學者都會跳過這里,繼續下面的學習,但是PHP中的正則表達式有著可以利用模式匹配找到符合條件的字元串、判斷字元串是否合乎條件或者用指定的字元串來替代符合條件的字元串等強大的功能,不學實在太可惜了……

3 正則表達式的基本語法:
一個正則表達式,分為三個部分:分隔符,表達式和修飾符。
分隔符可以是除了特殊字元以外的任何字元(比如」/ !」等等),常用的分隔符是」/」。表達式由一些特殊字元(特殊字元詳見下面)和非特殊的字元串組成,比如」[a-z0-9_-]+@[a-z0-9_-.]+」可以匹配一個簡單的電子郵件字元串。修飾符是用來開啟或者關閉某種功能/模式。下面就是一個完整的正則表達式的例子:
/hello.+?hello/is
上面的正則表達式」/」就是分隔符,兩個」/」之間的就是表達式,第二個」/」後面的字元串」is」就是修飾符。
在表達式中如果含有分隔符,那麼就需要使用轉義符號」",比如」/hello.+?/hello/is」。轉義符號除了用於分隔符外還可以執行特殊字元,全部由字母構成的特殊字元都需要」"來轉義,比如」d」代表全體數字。

4 正則表達式的特殊字元:
正則表達式中的特殊字元分為元字元、定位字元等等。
元字元是正則表達式中一類有特殊意義的字元,用來描述其前導字元(即元字元前面的字元)在被匹配的對象中出現的方式。元字元本身是一個個單一的字元,但是不同或者相同的元字元組合起來可以構成大的元字元。
元字元:
大括弧:大括弧用來精確指定匹配元字元出現的次數,例如」/pre{1,5}/」表示匹配的對象可以是」pre」、」pree」、」preeeee」這樣在」pr」後面出現1個到5個」e」的字元串。或者」/pre{,5}/」代表pre出現0此到5次之間。
加號:」+」字元用來匹配元字元前的字元出現一次或者多次。例如」/ac+/」表示被匹配的對象可以是」act」、」account」、」acccc」等在」a」後面出現一個或者多個」c」的字元串。」+」相當於」{1,}」。
星號:」*」字元用來匹配元字元前的字元出現零次或者多次。例如」/ac*/」表示被匹配的對象可以是」app」、」acp」、」accp」等在」a」後面出現零個或者多個」c」的字元串。」*」相當於」{0,}」。
問號:」?」字元用來匹配元字元前的字元出現零次或者1次。例如」/ac?/」表示匹配的對象可以是」a」、」acp」、」acwp」這樣在」a」後面出現零個或者1個」c」的字元串。」?」在正則表達式中還有一個非常重要的作用,即」貪婪模式」。
還有兩個很重要的特殊字元就是」[ ]「。他們可以匹配」[]「之中出現過的字元,比如」/[az]/」可以匹配單個字元」a」或者」z」;如果把上面的表達式改成這樣」/[a-z]/」,就可以匹配任何單個小寫字母,比如」a」、」b」等等。
如果在」[]「中出現了」^」,代表本表達式不匹配」[]「內出現的字元,比如」/[^a-z]/」不匹配任何小寫字母!並且正則表達式給出了幾種」[]「的默認值:
[:alpha:]:匹配任何字母
[:alnum:]:匹配任何字母和數字
[:digit:]:匹配任何數字
[:space:]:匹配空格符
[:upper:]:匹配任何大寫字母
[:lower:]:匹配任何小寫字母
[:punct:]:匹配任何標點符號
[:xdigit:]:匹配任何16進制數字
另外下面這些特殊字元在轉義符號」"轉義後代表的含義如下:
s:匹配單個的空格符
S:用於匹配除單個空格符之外的所有字元。
d:用於匹配從0到9的數字,相當於」/[0-9]/」。
w:用於匹配字母,數字或下劃線字元,相當於」/[a-zA-Z0-9_]/」。
W:用於匹配所有與w不匹配的字元,相當於」/[^a-zA-Z0-9_]/」。
D:用於匹配任何非10進制的數字字元。
.:用於匹配除換行符之外的所有字元,如果經過修飾符」s」的修飾,」.」可以代表任意字元。
利用上面的特殊字元可以很方便的表達一些比較繁瑣的模式匹配。例如」/d0000/」利用上面的正則表達式可以匹配萬以上,十萬一下的整數字元串。
定位字元:
定位字元是正則表達式中又一類非常重要的字元,它的主要作用是用於對字元在匹配對象中的位置進行描述。
^:表示匹配的模式出現在匹配對象的開頭(和在」[]「裡面不同)
$:表示匹配的模式出現在匹配對象的末尾
空格:表示匹配的模式出現在開始和結尾的兩個邊界之一
「/^he/」:可以匹配以」he」字元開頭的字元串,比如hello、height等等;
「/he$/」:可以匹配以」he」字元結尾的字元串即she等;
「/ he/」:空格開頭,和^的作用一樣,匹配以he開頭的字元串;
「/he /」:空格結束,和$的作用一樣,匹配以he結尾的字元串;
「/^he$/」:表示只和字元串」he」匹配。
括弧:
正則表達式除了可以用戶匹配,還可以用括弧」()」來記錄需要的信息,儲存起來,給後面的表達式讀取。比如:
/^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)(.[a-zA-Z0-9_-])$/
就是記錄郵件地址的用戶名,和郵件地址的伺服器地址(形式為[email protected]之類的),在後面如果想要讀取記錄下來的字元串,只是需要用」轉義符+記錄的次序」來讀取。比如」1〃就相當於第一個」[a-zA-Z0-9_-]+」,」2〃相當於第二個([a-zA-Z0-9_-]+),」3〃就是第三個(.[a-zA-Z0-9_-])。但是在PHP中,」"是一個特殊的字元,需要轉義,所以」"到了PHP的表達式中就應該寫成」1〃。
其他特殊符號:
「|」:或符號」|」和PHP裡面的或一樣,不過是一個」|」,而不是PHP的兩個」||」!意思就是可以是某個字元或者另一個字元串,比如」/abcd|dcba/」可能匹配」abcd」或者」dcba」。

5 貪婪模式:
前面在元字元中提到過」?」還有一個重要的作用,即」貪婪模式」,什麼是

⑶ php 正則表達式 只能包含字母和數字

式子:/^[a-zA-Z0-9]+$/u

釋義:

(1)「/」:正則表達式的定義,固定的書寫形式;

(2)「^」:表示開始;

(3)「[]」:表示一個字元組,匹配包含的任何字元。例如,「[ab]」匹配「plain」中的「a」;

(4)「a-z」:與小寫字母a-z匹配的字母範圍;

(5)「A-Z」:表示與大寫字母A-Z匹配的字母範圍;

(6)「0-9」:匹配范圍為0-9的數字;

(7)「+」:表示匹配數為一個或多個;

(8)「$」:匹配輸入行的結尾。如果設置了RegExp對象的Multiline屬性,則$也匹配「 」或「 」之前的位置;

(9)「u」:最後一個u是模式修飾符,嚴格來說,它可以是預定義的常數。表示使用unicode進行匹配。

(3)php正則表達式語法擴展閱讀:

其它正則表達式符號的含義:

(1)「*」:與上一個子表達式匹配任意次。例如,zo*匹配「z」以及「zo」和「zoo」。*等效於{0,};

(2)「?」:匹配上一個子表達式零或一次。例如,「做(es)?」匹配「do」或「does」。?等效於{0,1};

(3)「{n}」:n是一個非負整數。匹配被確定n次。例如,「o{2}」不能與「Bob」中的「o」匹配,但是可以與「food」中的兩個o匹配;

(4)「{n,}」:n是一個非負整數。至少匹配n次。例如,「o{2,}」不能匹配「Bob」中的「o」,但是可以匹配「foooood」中的所有o。「o{1,}」等效於「o+」。「o{0,}」等效於「o*」;

(5)「 {n,m}」:m和n是非負整數,其中n <= m。 至少匹配n次,最多匹配m次。 例如,「 o {1,3}」將匹配「 fooooood」中的前三個o作為一個組,最後三個o作為一個組。 「 o {0,1}」等效於「 o?」。 請注意,逗號和兩個數字之間不能有空格。

⑷ 超常用的PHP正則表達式收集整理

以下就是對超常用的PHP正則表達式進行的收集整理,為了方便大家更快更好的掌握php正則表達式。

:]*$!是對php中單引號的轉義。或者還有更簡單的!^/?[a-z0-9=:]*$!ii表示忽略大小寫。模式分隔符就是為了區分表達式和像i這樣的模式修飾符而設計的。

什麼是正則表達式:簡單的說,正則表達式是一種可以用於模式匹配和替換的強大工具。在幾乎所有的基於UNIX/LINUX系統的軟體工具中找到正則表達式的痕跡,例如:Perl或PHP腳本語言。

ThinkPHP的自動驗證常用的正則一般我們見的比較多的是設置規則為require、email之類的,其實這些本身也是屬於正則表達式驗證方式,只是系統內置定義了一些常用的正則表達式而已。

關鍵地方是漢字的表示xa0-xff。下面是我寫的例子程序,調試通過:?phpstr=漢字123456abcdef+-*/ABCDE!@#$%^&*()結尾。

⑸ PHP正則表達式的使用技巧

PHP正則表達式的定義

用於描述字元排列和匹配模式的一種語法規則 它主要用於字元串的模式分割 匹配 查找及替換操作

PHP中的正則函數

PHP中有兩套正則函數 兩者功能差不多 分別為

一套是由PCRE(Perl Compatible Regular Expression)庫提供的 使用 preg_ 為前綴命名的函數

一套由POSIX(Portable Operating System Interface of Unix )擴展提供的 使用以 ereg_ 為前綴命名的函數 (POSIX的正則函數庫 自PHP 以後 就不在推薦使用 從PHP 以後 就將被移除)

由於POSIX正則即將推出歷史舞台 並且PCRE和perl的形式差不多 更利於我們在perl和php之間切換 所以這里重點介紹PCRE正則的使用

PCRE正則表達式

PCRE全稱為Perl Compatible Regular Expression 意思是Perl兼容正則表達式

在PCRE中 通常將模式表達式(即正則表達式)包含在兩個反斜線 / 之間 如 /apple/

正則中重要的幾個概念有 元字元 轉義 模式單元(重復) 反義 引用和斷言 這些概念都可以在文章[ ]中輕松的理解和掌握

常用的元字元(Meta character)

元字元 說明

/A 匹配字元串串首的原子

/Z 匹配字元串串尾的原子

/b 匹配單詞的邊界 //bis/ 匹配頭為is的字元串 /is/b/ 匹配尾為is的字元串 //bis/b/ 定界

/B 匹配除單詞邊界之外的任意字元 //Bis/啟局 匹配單詞 This 中的 is

/d 匹配一個數字 等價於[ ]

/D 匹配除數字以外任何一個字元 等價於[^ ]

/w 匹配一個英文字母 數字或下劃線 等價於[ a zA Z_]

/W 匹配除英文字母 數字和下劃線以外任何一個字元 等價於[^ a zA Z_]

/s 匹配一個空白字元 等價於[/f/t/v]

/S 匹配除空白字元以外任何一個字元 等價於[^/f/t/v]

/f 匹配一個換頁符等價於 /x c 或 /cL

匹配段旁鋒一個換行符 等價於 /x a 或 /cJ

匹配一個回車符等價於/x d 或 /cM

/t 匹配一個製表符 等價於 /x /或/cl

/v 匹配一個垂直製表符 等價於/x b或/ck

/oNN 匹配一個八進制數字

/xNN 匹配一個十六進制數字

/cC 匹配一個控制字元

模式修正符(Pattern Modifiers)

模式修正符在忽略大小寫 匹配多行中使用特別多 掌握了這一個修正符 往往能解決我們遇到的很多問題

i -可同時匹配大小寫字母

M -將字元串視為多行

S -將字元串視為單行 換行符做普通字元看待 使 匹配任何字元

X -模式中的空白忽略不計

U -匹配到最近的字元串

e -將替換的字元串作為表達使用

格式 /apple/i匹配 apple 或 Apple 等 忽略大小寫 /i

PCRE的模式單元

// 提取第一位的屬性

/^/d{ } ([/W])/d{ }// /d{ }$匹配 / / 等字元串 但上述正則表達式不匹配 / 的格式 這是因為模式 [/W] 的結果 / 已經被存儲 下個位置 / 引用時 其匹配模式也是字元 /

當不需要存儲匹配結果時使用非存儲模式單元 (? )

例如/(?:a|b|c)(D|E|F)// g/ 將匹配 aEEg 在一些正則表達式中 使握晌用非存儲模式單元是必要的 否則 需要改變其後引用的順序 上例還可以寫成/(a|b|c)(C|E|F)/ g/

PCRE正則表達式函數

以下為引用的內容

preg_match()和preg_match_all() preg_quote() preg_split() preg_grep() preg_replace()

函數的具體使用 我們可以通過PHP手冊來找到 下面分享一些平時積累的正則表達式

匹配action屬性

以下為引用的內容

$str = ; $match = ; preg_match_all( //s+action=/ (?!)( *?)/ /s/ $str $match); print_r($match);

在正則中使用回調函數

以下為引用的內容

/** * replace some string by callback function * */ function callback_replace() { $url = ; $str = ; $str = preg_replace ( /(?<=/saction=/ )(?!)( *?)(?=/ /s)/e search(/$url // ) $str ); echo $str; } function search($url $match){ return $url / $match; }

帶斷言的正則匹配

以下為引用的內容

$match = ; $str = xxxxxx cn bold font paragraph text

; preg_match_all ( /(?<=<(/w{ })>) *(?=</// >)/ $str $match ); echo 匹配沒有屬性的HTML標簽中的內容 ; print_r ( $match );

替換HTML源碼中的地址

以下為引用的內容

$form_ = preg_replace ( /(?<=/saction=/ |/ssrc=/ |/s)(?!|javascript)( *?)(?=/ /s)/e add_url(/$url / // / ) $form_ );

lishixin/Article/program/PHP/201311/21027

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:250
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705