tid=12454& 本帖最後由 IT_man 於 2015-7-2 19:36 編輯
3 }) l6 `! ]+ h0 [" A8 H4 |4 ^+ s7 K: C; [. T4 R5 } b3 c7 T
1.頭尾的//要加進去 slash相同
5 v) ]3 ^5 x! j2.回傳的值不同 i! |& l6 Q/ N* L" Z, R6 E
3.使用到跳脫字元 必須使用 \^
* q/ z9 z2 |3 c9 |" F B1 v dpreg_match("/(正規條件字串)/","(欲驗證字串)"),如果欲驗證字串符合正規條件字串,則回傳1(true),反之回傳0(false)。error return false.+ P: O; ^6 I7 ]. b u
不區分大小寫的sensitive
1 K+ m4 w: \: @1 d5 G; xeregi('^hello', 'HELLO');
: C; w' O! b, j6 O0 g- H" Q8 @preg_match('/^hello/i', 'HELLO');
% b' a/ ?2 h$ @7 j' {0 Q% Y
B$ D; N/ U2 w7 V4 O0 g6 B# L0 V) U
6 a6 \6 B' D- y$ p/ Y6 ^8 Q1. 需要跳脫字元的特殊符號( C# C3 m) _1 h5 i$ c# g/ h1 o1 k
\ + [ ] . ^ $ * ? ( ) | ' " { }
' Q4 [9 R; s w0 ~' L/ h; E" d @如果有使用到 正規表達式的符號 請使用跳脫字元 eg. \^) `9 N% e1 ~. V, I' ?
( S) V# ~0 v* C7 C$ v
2 J4 Z6 n8 o+ j' f5 A
2., \5 r$ \: f. \" t- z2 D7 _
通用式 | 說明及範例 | 比對不成立之字串 | /a/ | 含字母 “a" 的字串,例如 “ab", “bac", “cba" | “xyz" | /a./ | 含字母 “a" 以及其後任一個字元的字串,例如 “ab", “bac"(若要比對.,請使用 \.) | “a", “ba" | /^xy/ | 以 “xy" 開始的字串,例如 “xyz", “xyab"(若要比對 ^,請使用 \^) | “axy", “bxy" | /xy$/ | 以 “xy" 結尾的字串,例如 “axy", “abxy"以 “xy" 結尾的字串,例如 “axy", “abxy" (若要比對 $,請使用 \$) | “xya", “xyb" | [13579] | 包含 “1″ 或 “3″ 或 “5″ 或 “7″ 或 “9″ 的字串,例如:"a3b", “1xy" | “y2k" | [0-9] | 含數字之字串 | 不含數字之字串 | [a-z0-9] | 含數字或小寫字母之字串 | 不含數字及小寫字母之字串 | [a-zA-Z0-9] | 含數字或字母之字串 | 不含數字及字母之字串 | b[aeiou]t | “bat", “bet", “bit", “bot", “but" | “bxt", “bzt" | [^0-9] | 不含數字之字串(若要比對 ^,請使用 \^) | 含數字之字串 | [^aeiouAEIOU] | 不含母音之字串(若要比對 ^,請使用 \^) | 含母音之字串 | [^\^] | 不含 “^" 之字串,例如 “xyz", “abc" | “xy^", “a^bc" |
字元 | 說明 | 簡單範例 | \ | 避開特殊字元 | /A\*/ 可用於比對 “A*",其中 * 是一個特殊字元,為避開其特殊意義,所以必須加上 “\" | ^ | 比對輸入列的啟始位置 | /^A/ 可比對 “Abcd" 中的 “A",但不可比對 “aAb" | $ | 比對輸入列的結束位置 | /A$/ 可比對 “bcdA" 中的 “A",但不可比對 “aAb" | * | 比對前一個字元零次或更多次 | /bo*/ 可比對 “Good boook" 中的 “booo",亦可比對 “Good bk" 中的 “b" | + | 比對前一個字元一次或更多次,等效於 {1,} | /a+/ 可比對 “caaandy" 中的 “aaa",但不可比對 “cndy" | ? | 比對前一個字元零次或一次 | /e?l/ 可比對 “angel" 中的 “el",也可以比對 “angle" 中的 “l" | . | 比對任何一個字元(但換行符號不算) | /.n/ 可比對 “nay, an apple is on the tree" 中的 “an" 和 “on",但不可比對 “nay" | (x) | 比對 x 並將符合的部分存入一個變數 | /(a*) and (b*)/ 可比對 “aaa and bb" 中的 “aaa" 和 “bb",並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。 | xy | 比對 x 或 y | /a*b*/g 可比對 “aaa and bb" 中的 “aaa" 和 “bb" | {n} | 比對前一個字元 n 次,n 為一個正整數 | /a{3}/ 可比對 “lllaaalaa" 其中的 “aaa",但不可比對 “aa" | {n,} | 比對前一個字元至少 n 次,n 為一個正整數 | /a{3,}/ 可比對 “aa aaa aaaa" 其中的 “aaa" 及 “aaaa",但不可比對 “aa" | {n,m} | 比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數 | /a{3,4}/ 可比對 “aa aaa aaaa aaaaa" 其中的 “aaa" 及 “aaaa",但不可比對 “aa" 及 “aaaaa" | [xyz] | 比對中括弧內的任一個字元 | /[ecm]/ 可比對 “welcome" 中的 “e" 或 “c" 或 “m" | [^xyz] | 比對不在中括弧內出現的任一個字元 | /[^ecm]/ 可比對 “welcome" 中的 “w"、"l"、"o",可見出其與 [xyz] 功能相反。(同時請同學也注意 /^/ 與 [^] 之間功能的不同。) | [\b] | 比對退位字元(Backspace character) | 可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別 | \b | 比對英文字的邊界,例如空格 | 例如 /\bn\w/ 可以比對 “noonday" 中的 ‘no’ ;
2 {, n$ E6 F+ j! v+ X8 Y) b9 P/ |1 O/ i; S/\wy\b/ 可比對 “possibly yesterday." 中的 ‘ly’ | \B | 比對非「英文字的邊界」 | 例如, /\w\Bn/ 可以比對 “noonday" 中的 ‘on’ ,
/ d0 J' Z/ _ V x0 `另外 /y\B\w/ 可以比對 “possibly yesterday." 中的 ‘ye’ | \cX | 比對控制字元(Control character),其中 X 是一個控制字元 | /\cM/ 可以比對一個字串中的 control-M | \d | 比對任一個數字,等效於 [0-9] | /[\d]/ 可比對由 “0″ 至 “9″ 的任一數字但其餘如字母等就不可比對 | \D | 比對任一個非數字,等效於 [^0-9] | /[\D]/ 可比對 “w" “a"… 但不可比對如 “7″ “1″ 等數字 | \f | 比對 form-feed | 若是在文字中有發生 “換頁" 的行為則可以比對成功 | \n | 比對換行符號 | 若是在文字中有發生 “換行" 的行為則可以比對成功 | \r | 比對 carriage return | | \s | 比對任一個空白字元(White space character),等效於 [ \f\n\r\t\v] | /\s\w*/ 可比對 “A b" 中的 “b" | \S | 比對任一個非空白字元,等效於 [^ \f\n\r\t\v] | /\S/\w* 可比對 “A b" 中的 “A" | \t | 比對定位字元(Tab) | | \v | 比對垂直定位字元(Vertical tab) | | \w | 比對數字字母字元(Alphanumerical characters)或底線字母("_"),等效於 [A-Za-z0-9_] | /\w/ 可比對 “.A _!9″ 中的 “A"、"_"、"9″。 | \W | 比對非「數字字母字元或底線字母」,等效於 [^A-Za-z0-9_] | /\W/ 可比對 “.A _!9″ 中的 “."、" “、"!",可見其功能與 /\w/ 恰好相反。 | \ooctal | 比對八進位,其中octal是八進位數目 | /\oocetal123/ 可比對與八進位的ASCII中 “123″ 所相對應的字元值。 | \xhex | 比對十六進位,其中hex是十六進位數目 | /\xhex38/ 可比對與 16進位的ASCII中 “38″ 所相對應的字元。 | # M- o0 p, \3 T# q( b, s* S
例:) f8 y9 T, g) e' U" c# i
"http://videomega.tv/view.php?ref=057070073072049056055072068049049068072055056049072073070057&" 找 "057070073072049056055072068049049068072055056049072073070057" 這串數字 ====>- $LINK_PAGE="http://videomega.tv/view.php?ref=057070073072049056055072068049049068072055056049072073070057&";6 c% A3 y( ?* R
- preg_match('/http\:\/\/videomega\.tv\/view\.php\?ref=(\d+)&/i', $LINK_PAGE, $tmp_matches);
複製代碼 - ]! @/ j- r( v. s3 \
結果 ===>/ k4 s, f& V! A. E6 _2 w# f
$tmp_matches[0] = "http://videomega.tv/view.php?ref=057070073072049056055072068049049068072055056049072073070057&"1 c/ U. V9 E- ^. b' D3 A K$ U2 u
$tmp_matches[1] = "057070073072049056055072068049049068072055056049072073070057"3 o4 f, s9 |, e& L3 x
! K/ [, _" I* m7 G4 k2 {" ^* A; } |