A. php中的正則表達式
/……/ 分割符 你懂的
\s是一個空白字元
(?=……)是前瞻斷言,或說是向前看、正向預搜索。 簡單說就是向右看……字元,不匹配字元,判斷用的
整個\s(?=\s)來說就是
只匹配一個空格,並且在這個空格的右邊必須還得接著一個空格。
B. PHP 正則表達式函數庫
在PHP中有兩套正則表達式函數庫,兩者功能相似,只是執行效率略有差異:
一套是由PCRE(Perl Compatible Regular Expression)庫提供的。使用「preg_」為前綴命名的函數;
一套由POSIX(Portable Operating System Interface of Unix )擴展提供的(PHP默認)。使用以「ereg_」為前綴命名的函數;
PHP中,正則表達式有三個作用:
匹配,也常常用於從字元串中析取信息。
用新文本代替匹配文本。
將一個字元串拆分為一組更小的信息塊。
一個正則表達式中至少包含一個原子。
原子(普通字元,如英文字元)
元字元(有特殊功用的字元)
模式修正字元(對正則表達式語義的修正)
原子(Atom)
單個字元、數字,如a~z,A~Z,0~9。
模式單元,如(ABC)可以理解為由多個原子組成的大的原子。
原子表,如 。
重新使用的模式單元,如:\\1
普通轉義字元,如:\d, \D, \w
轉義元字元,如:\*,\.
POSIX正則表達式
POSIX正則表達式全稱為Portable Operating System Interface of Unix,意為UNIX可移植操作系實現介面。
http://www.33dir.com/news/2/2168.html
構造POSIX正則表達式的方法和創建數學表達式的方法一樣,也就是用多種元字元與操作符將小的表達式結合在一起來創建更大的表達式。
C. php正則表達式是什麼
是指一個用來描述或者匹配一系列符合某個句法規則的字元串的單個字元串。
正則表達式是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字元串」,這個「規則字元串」用來表達對字元串的一種過濾邏輯。
給定一個正則表達式和另一個字元串,我們可以達到如下的目的:
1. 給定的字元串是否符合正則表達式的過濾邏輯(稱作「匹配」);
2. 可以通過正則表達式,從字元串中獲取我們想要的特定部分。
正則表達式的特點是:
1. 靈活性、邏輯性和功能性非常的強;
2. 可以迅速地用極簡單的方式達到字元串的復雜控制。
3. 對於剛接觸的人來說,比較晦澀難懂。
由於正則表達式主要應用對象是文本,因此它在各種文本編輯器場合都有應用,小到著名編輯器EditPlus,大到Microsoft Word、Visual Studio等大型編輯器,都可以使用正則表達式來處理文本內容。
D. php正則表達式
這里涉及到正則表達式中得子串捕獲的概念。php中的正則表達式使用的是pcre正則庫,因此使用方式上和pcre是相同的,只不過是為了使用方便封裝了一起便捷的操作而已。preg_match函數和preg_match_all函數用於在php中進行正則表達式的相關處理。下面看下preg_match函數的定義:intpreg_match(string$pattern,string$subject[,array&$matches])在$subject中查詢$pattern,如果找到則把匹配的字元串存儲在$matches中。$matches[0]中存放整個匹配的字元串,$matches[i]中存放匹配到的第i個捕獲子串。題目的解決方法:$pattern="/^NAME(.*){$/";preg_match($pattern,$string,$match);echo$match[1];//$match[1]為提取的NAME和{之間的內容。關於捕獲組信息($match的信息)詳情,可以參考文檔:http://wang
E. 詳解PHP正則表達式:什麼是正則表達式
正則表達式,又稱規則表達式,英文名為Regular Expression,在代碼中常簡寫為regex、regexp或RE,是計算機科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。
正則表達式是對字元串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為「元字元」))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字元串」,這個「規則字元串」用來表達對字元串的一種過濾邏輯。正則表達式是一種文本模式,模式描述在搜索文本時要匹配的一個或多個字元串。
F. PHP正則表達式
數字:
^[0-9]*$
2
n位的數字:
^\d{n}$
3
至少n位的數字:
^\d{n,}$
4
m-n位的數字:
^\d{m,n}$
5
零和非零開頭的數字:
^(0|[1-9][0-9]*)$
6
非零開頭的最多帶兩位小數的數字:
^([1-9][0-9]*)+(.[0-9]{1,2})?$
7
帶1-2位小數的正數或負數:
^(\-)?\d+(\.\d{1,2})?$
8
正數、負數、和小數:
^(\-|\+)?\d+(\.\d+)?$
9
有兩位小數的正實數:
^[0-9]+(.[0-9]{2})?$
10
有1~3位小數的正實數:
^[0-9]+(.[0-9]{1,3})?$
11
非零的正整數:
^[1-9]\d*$
或
^([1-9][0-9]*){1,3}$
或
^\+?[1-9][0-9]*$
12
非零的負整數:
^\-[1-9][]0-9"*$
或
^-[1-9]\d*$
13
非負整數:
^\d+$
或
^[1-9]\d*|0$
14
非正整數:
^-[1-9]\d*|0$
或
^((-\d+)|(0+))$
15
非負浮點數:
^\d+(\.\d+)?$
或
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16
非正浮點數:
^((-\d+(\.\d+)?)|(0+(\.0+)?))$
或
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17
正浮點數:
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
或
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18
負浮點數:
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
或
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19
浮點數:
^(-?\d+)(\.\d+)?$
或
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
G. 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等
H. 怎樣解讀php中的正則表達式 (求詳解)
^(https?|ftps?) -------- 以https或ftps開頭 (協議名)
:\/\/ ------------------- ://
([a-zA-Z0-9-]+\.){1,5} ----- 一個以上的大小寫字母或數字加點'.'為一組,出現1組到5組(域名)
(com|cn|net) ---------------- com或cn或net
\/? ---------------------------- 可能有一個/
(\/?index.php)? ----------------- 可能有index.php 文件名
(\??(\w+=\S+&?)+)?/' ---------- 可能有問號(加一個以上的字元,加等於號,可能有&)括弧里的東西可能重復出現 (用get方式傳遞的參數)
所以可能匹配: http://abab.aba.com/index.php?id=123&name=jack 這樣的url。
感覺這個寫的不是很嚴謹,很多不是想要的也能匹配上。
| 表示或,問號表示出現0次或1次,加好表示出現1次以上,大括弧里的是出現次數的上下限。
這個教程不錯,簡單而且比較夠用:http://deerchao.net/tutorials/regex/regex.htm
I. php中正則表達式的一些問題
第一個,'/[^\/]+/' 里,前後的斜杠只是表示中間的內容是正則表達式,所以正則表達式是:
[^\/]+,其中\/是轉義字元,表示斜杠/,中括弧里的第一個元字元^表示非斜杠的字元,那
[^\/]+就是匹配長度至少為1,多無限的字元串了。
第二個:注意後面的元字元$,它表示一個文本的結束位置,所以取的是 php.net 而不是 www.php
第三個:正則表達式 [\/$]+ ,其中 \/ 是轉義字元,表示斜杠,$表示文本結束位置,中括弧是表達字元組的,也就是[\/$]可以匹配一個斜杠或者文本的結束位置,在這個文本里,最先匹配到的是斜杠,然後後面的 + 表示重復匹配連續著的屬於這個字元組里的字元,剛才匹配了一個斜杠,那它會往後匹配到不能匹配位置,因此得到的就是雙斜杠。