導航:首頁 > 編程語言 > php正則表達式修飾

php正則表達式修飾

發布時間:2022-08-08 17:39:54

『壹』 誰能幫我解答一下,php中正則表達式的全局修飾符、g起什麼作用,最好用一個小實例來證明一下!

替換的時候,如果沒有g,只替換第一個匹配項,有的話替換所有匹配項。

『貳』 php的正則表達式求問

只要字元串中含有一個或一個以上除字母、數字、斜杠、反斜杠、下劃線、小數點、減號之外的符號,即匹配,否則就不匹配。
比如 abc123 是不匹配的
而 abc@123 則是匹配的
abc哈哈123 也是匹配的

『叄』 php 正則表達式 只能包含字母和數字

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

釋義:

"/":表示正則表達式的定義,固定寫法。

"^":表示開頭。

"[]":表示字元組。匹配所包含的任意一個字元。如,「[ab]」匹配「plain」中的「a」。

"a-z":表示匹配小寫字母a-z的字母範圍。

"A-Z":表示匹配大寫字母A-Z的字母範圍。

"0-9":表示匹配0-9的數字范圍。

"+":表示匹配次數大於等於1。

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

"u":最後的u是模式修飾符,嚴格的說可能叫預定義常量。表示使用unicode進行匹配。

(3)php正則表達式修飾擴展閱讀:

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

1、"*":匹配前面的子表達式任意次。例如,zo*能匹配「z」,也能匹配「zo」以及「zoo」。*等價於{0,}。

2、"?":匹配前面的子表達式零次或一次。例如,「do(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常用正則表達式匯總

1.
^d+$"//非負整數(正整數
+
0)
2.
"^[0-9]*[1-9][0-9]*$"//正整數
3.
"^((-d+)|(0+))$"//非正整數(負整數
+
0)
4.
"^-[0-9]*[1-9][0-9]*$"//負整數
5.
"^-?d+$"//整數
6.
"^d+(.d+)?$"//非負浮點數(正浮點數
+
0)
7.
"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮點數
8.
"^((-d+(.d+)?)|(0+(.0+)?))$"//非正浮點數(負浮點數
+
0)
9.
"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//負浮點數
10.
"^(-?d+)(.d+)?$"//浮點數
11.
"^[A-Za-z]+$"//由26個英文字母組成的字元串
12.
"^[A-Z]+$"//由26個英文字母的大寫組成的字元串
13.
"^[a-z]+$"//由26個英文字母的小寫組成的字元串
14.
"^[A-Za-z0-9]+$"//由數字和26個英文字母組成的字元串
15.
"^w+$"//由數字、26個英文字母或者下劃線組成的字元串
16.
"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"//email地址
17.
"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"//url
18.
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/
//
年-月-日
19.
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/
//
月/日/年
20.
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"
//Emil
21.
/^((+?[0-9]{2,4}-[0-9]{3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?$/
//電話號碼
22.
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"
//IP地址
23.
匹配中文字元的正則表達式:
[u4e00-u9fa5]
24.
匹配雙位元組字元(包括漢字在內):[^x00-xff]
25.
匹配空行的正則表達式:n[s|
]*r
26.
匹配HTML標記的正則表達式:/<(.*)>.*</1>|<(.*)
/>/
27.
匹配首尾空格的正則表達式:(^s*)|(s*$)
28.
匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
29.
匹配網址URL的正則表達式:^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
30.
匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
31.
匹配國內電話號碼:(d{3}-|d{4}-)?(d{8}|d{7})?
32.
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$
33.
元字元及其在正則表達式上下文中的行為:
34.
將下一個字元標記為一個特殊字元、或一個原義字元、或一個後向引用、或一個八進制轉義符。
35.
^
匹配輸入字元串的開始位置。如果設置了
RegExp
對象的Multiline
屬性,^
也匹配
’n’

’r’
之後的位置。
36.
$
匹配輸入字元串的結束位置。如果設置了
RegExp
對象的Multiline
屬性,$
也匹配
’n’

’r’
之前的位置。
37.
*
匹配前面的子表達式零次或多次。
38.
+
匹配前面的子表達式一次或多次。+
等價於
{1,}。
39.
?
匹配前面的子表達式零次或一次。?
等價於
{0,1}。
40.
{n,}
n
是一個非負整數,至少匹配n
次。
41.
{n,m}
m

n
均為非負整數,其中n
<=
m。最少匹配
n
次且最多匹配
m
次。在逗號和兩個數之間不能有空格。

『伍』 php 正則表達式

建議你到我的網站上下載PHP5參考手冊,里邊有詳細的正則表達式的參考。
模式要有開始和結束的字元,一下都是合法的:
/
|
#
'
前提是模式中不能再出現這個字元了。
結尾的/後邊的is是模式修政府,具體如下
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() 在替換字元串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,並用其結果來替換所搜索的字元串。

只有 preg_replace() 使用此修正符,其它 PCRE 函數將忽略之。

注意: 本修正符在 PHP3 中不可用。

A(PCRE_ANCHORED)
如果設定了此修正符,模式被強制為「anchored」,即強制僅從目標字元串的開頭開始匹配。此效果也可以通過適當的模式本身來實現(在 Perl 中實現的唯一方法)。
D(PCRE_DOLLAR_ENDONLY)
如果設定了此修正符,模式中的美元元字元僅匹配目標字元串的結尾。沒有此選項時,如果最後一個字元是換行符的話,美元符號也會匹配此字元之前(但不會匹配任何其它換行符之前)。如果設定了 m 修正符則忽略此選項。Perl 中沒有與其等價的修正符。
S
當一個模式將被使用若干次時,為加速匹配起見值得先對其進行分析。如果設定了此修正符則會進行額外的分析。目前,分析一個模式僅對沒有單一固定起始字元的 non-anchored 模式有用。
U(PCRE_UNGREEDY)
本修正符反轉了匹配數量的值使其不是默認的重復,而變成在後面跟上「?」才變得重復。這和 Perl 不兼容。也可以通過在模式之中設定 (?U) 修正符或者在數量符之後跟一個問號(如 .*?)來啟用此選項。
X(PCRE_EXTRA)
此修正符啟用了一個 PCRE 中與 Perl 不兼容的額外功能。模式中的任何反斜線後面跟上一個沒有特殊意義的字母導致一個錯誤,從而保留此組合以備將來擴充。默認情況下,和 Perl 一樣,一個反斜線後面跟一個沒有特殊意義的字母被當成該字母本身。當前沒有其它特性受此修正符控制。
u(PCRE_UTF8)
此修正符啟用了一個 PCRE 中與 Perl 不兼容的額外功能。模式字元串被當成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起開始檢查模式的 UTF-8 合法性。

『陸』 php正則表達式的修飾符,小寫u是什麼意思

一般寫在字元串前面,u是代表Unicode字元串,r代表原字元串【裡面的特殊字元不轉義,如\n不會當作換行符,就是字面的意思】

『柒』 什麼是PHP正則表達式模式修飾符

? 非貪婪模式

'aaaaa'.match(/a+/)//'aaaaa'默認貪婪模式,a符合要求,aa也不和要求,就會一直向後匹配知道不符合要求,返回最後一個符合要求的匹配值
'aaaaa'.match(/a+?/)//'a'非貪婪模式,一旦符合要求,就不再追加


i /xxx/i 忽略大小寫, 不帶i的大小寫敏感
比如

/a/.test('A')//false
/a/i.test('A')//true


g /xxx/g 全局匹配,不帶g的只會匹配一次,g會一直向後匹配。可以和i同時使用
比如

'ababa'.replace(/a/,'1')//1baba
'ababa'.replace(/a/g,'1')//1b1b1

『捌』 PHP正則表達式((:[0-9a-zA-Z$_.`-]|[\xC2-\xDF][\x80-\xBF])+)/is是什麼意思

(?: )表示只進行分組,不進行捕獲

[0-9a-zA-Z$_.`-] ——0-9、a-z、A-Z或$、_、.、`、-中的一個字元
| ——表示或者
[\xC2-\xDF][\x80-\xBF] ——用十六進製表示的字元范圍【具體是什麼字元不太清楚,比如漢字的范圍一般是 4E00-9FA5】
+ ——前面的字元有一個或多個
(?: +) 外面的括弧( )——是捕獲括弧。即不捕獲單個匹配字元,只捕獲匹配的最大字串。
/is——是PHP中正則表達式模式修飾符,其中i代表 不區分大小寫,s代表:如果設定了這個修正符,那麼,被匹配的字元串將視為一行來看,包括換行符,換行符將被視為普通字元串。
模式修飾符還有:m、x、e等

『玖』 php正則表達式eregi()

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的正則表達式

補充:其實就是匹配單個的html開始或結束標記。最簡單的表達是
!^</?[a-zA-Z0-9 ="\';:]*>$!
\'是對php中單引號的轉義。或者還有更簡單的
!^</?[a-z0-9 ="\';:]*>$!i
i表示忽略大小寫。模式分隔符就是為了區分表達式和像i這樣的模式修飾符而設計的。
另外,站長團上有產品團購,便宜有保證

閱讀全文

與php正則表達式修飾相關的資料

熱點內容
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:503
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:761
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944
快遞員中通app預付款是什麼 瀏覽:843
java路徑轉義 瀏覽:857
keytool加密演算法 瀏覽:131
笑臉圖案的APP相機是什麼軟體 瀏覽:249
app軟體為什麼會被下架 瀏覽:979
從內存到硬碟的命令是 瀏覽:52
程序員的爸爸們的發型 瀏覽:123
魔獸世界傷害壓縮是怎麼壓的 瀏覽:976
壓縮機型號hp 瀏覽:958
配音虛弱的程序員 瀏覽:61
8歲小學生程序員編程 瀏覽:256