|
int preg_match_all ( string pattern, string subject, array matches [, int flags] )! N/ Q* ^& M; G
3 I- _! _# G' r, ~; F" h% @ subject 銝剜蝝Xpattern 蝏箇甇閬銵函內撘寥摰嫣蒂撠蝏隞 flags 摰摨曉 matches 銝准 蝝W啁洵銝銝芸寥銋嚗乩亦蝝W銝銝寥怠偏憪 flags 臭誑臭璅閮蝯嚗瘜冽 PREG_PATTERN_ORDER PREG_SET_ORDER 韏瑚冽瓷蝢抬嚗 6 R4 W' L+ J: E) h/ M( u' i# M
PREG_PATTERN_ORDER撠蝯摨雿 $matches[0] 箏券冽芋撘寥摮銝莎$matches[1]箇洵銝砍瑚葉摮璅∪寥摮銝莎隞交迨憿具 - <?php
! X% _& J: z1 W I - preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",8 C# `* l0 R! W) \1 s# P
- "<b>example: </b><div align=left>this is a test</div>",
% I$ _# h# ^. d. l - $out, PREG_PATTERN_ORDER);
$ B, Q7 g6 j( J - print $out[0][0].", ".$out[0][1]."\n";$ i6 c5 m, b3 Z7 v& _
- print $out[1][0].", ".$out[1][1]."\n";
* n3 q9 w. e/ g" {1 B - ?>
銴鋆賭誨蝣 : v5 K+ {, z- j- U- O+ M! }3 L# }
砌撠颲綽 - <b>example: </b>, <div align=left>this is a test</div>* z" p ]' y* L& D: n8 n) X/ C/ J
- example: , this is a test
銴鋆賭誨蝣
2 {$ u1 a7 S2 Q& W. D甇歹$out[0] 怠寥港葵璅∪摮銝莎$out[1] 思撠HTML 璅閮銋摮銝脯 ; [+ o1 o6 r+ `. j
0 {# H. c' s$ i; ?9 H n3 W, R% V( v0 Q
PREG_SET_ORDER撖寧摨雿 $matches[0] 銝箇洵銝蝏寥憿寧啁嚗$matches[1] 銝箇洵鈭蝏寥憿寧啁嚗隞交迨蝐餅具 - <?php/ T+ N, k9 b$ N' H' M: [
- preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",% w. H% k* v# I8 n# ^
- "<b>example: </b><div align=left>this is a test</div>",# U. k$ Q0 \# u: R. _ j
- $out, PREG_SET_ORDER);- D+ [" m+ y0 M* r+ I" q
- print $out[0][0].", ".$out[0][1]."\n";
% h9 s6 w( S+ [3 P$ W: e& m& D - print $out[1][0].", ".$out[1][1]."\n";
. e' Z0 k* Z+ Z% f0 U - ?>
銴鋆賭誨蝣
' B8 t4 H! I& z; @1 S: K砌撠颲綽 - <b>example: </b>, example:; m5 ^6 X3 i$ S) U" o& O
- <div align=left>this is a test</div>, this is a test8 m9 u# g( e3 b# ^; I$ q3 I0 _
銴鋆賭誨蝣
! U+ T( ~' ]& A$ } `; L砌銝哨$matches[0] 舐洵銝蝏寥蝏嚗$matches[0][0] 怠寥港葵璅∪穿$matches[0][1] 怠寥蝚砌銝芸璅∪穿隞交迨蝐餅具瘀$matches[1] 舐洵鈭蝏寥蝏嚗蝑蝑 PREG_OFFSET_CAPTURE憒霈曉祆霈堆撖寞銝芸箇啁寥蝏銋嗉園撅摮蝚虫葡蝘駁瘜冽餈孵鈭餈啁潘雿踹嗡葉瘥銝芸銋臭銝芣啁嚗嗡葉蝚砌憿嫣蛹寥摮蝚虫葡嚗蝚砌憿嫣蛹嗅 subject 銝剔蝘駁祆霈啗 PHP 4.3.0 韏瑕舐具
, {3 R L% ]8 ^
% O9 \9 r( v" Q# @9 u {憒瘝⊥蝏箸霈堆摰銝 PREG_PATTERN_ORDER 餈港葵璅∪寥甈⊥堆航賭蛹塚嚗憒粹餈 FALSE 7 \- k( p! n' s* I5 J2 V
靘摮 1. 隞砌葉敺菔瑞 - <?php! V- ^9 Q: c! P. y) W6 v% n& F+ T" x9 g
- preg_match_all ("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x",
$ z3 f" `. Y$ o: I1 O2 M - "Call 555-1212 or 1-800-555-1212 FREE", $phones);
" q- d7 r% D) F6 S4 \9 O, o/ e$ I - ?>
銴鋆賭誨蝣靘摮 2. 蝝W寥 HTML 霈堆greedy嚗 - <?php
( }4 `" ?" ~- P, y# r1 ^8 w0 ]' k - // \\2 臭銝芷撘函靘摮嚗嗅 PCRE 銝剔思; H: I7 r9 m$ D0 s8 e% \
- // 敹憿餃寥甇銵刻噢撘祈澈銝剔洵鈭蝏砍瑕摰對砌銝
8 m2 v% C8 _2 {3 n - // 撠望 ([\w]+)銝箏蝚虫葡典撘瑚葉嚗隞仿閬
8 l( \; y8 v( g" f t$ s7 c - // 憭銝銝芸蝥踴, o) [6 S& J2 b9 \4 a' m/ {
- $html = "<b>bold text</b><a href=howdy.html>click me</a>";2 t) S( `5 j8 X5 ^# ?
- . E6 C+ ~* f1 W
- preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);
+ @0 ^7 }. T! \ C1 a ~3 }! F
1 q+ J$ i- ~1 c j' N8 _: L- for ($i=0; $i< count($matches[0]); $i++) {& V0 \% Y$ C1 s5 B
- echo "matched: ".$matches[0][$i]."\n";
8 w9 ^/ U; `' m1 B3 J L) Z - echo "part 1: ".$matches[1][$i]."\n";# f& W* {" P4 O# `* G% s1 S9 b" W2 C
- echo "part 2: ".$matches[3][$i]."\n";
# a3 Q, o/ j, D$ `1 u {% J$ v7 u - echo "part 3: ".$matches[4][$i]."\n\n";5 }2 x& x4 A" |1 Z% c( }6 `. A
- }% Q- s) Y9 H3 ~ ]0 _
- ?>
銴鋆賭誨蝣砌撠颲綽 - matched: <b>bold text</b>1 A; ?2 v" ]! p: E* @
- part 1: <b>3 q. R1 A6 u1 r' V6 R( G
- part 2: bold text+ D8 J# k" T, ]) Y* v- O% u
- part 3: </b>0 z+ [. a$ [& C" y9 S) {) u
- * i; X) @0 \* _ X/ [7 V* S
- matched: <a href=howdy.html>click me</a>
2 [; r! y/ D/ K - part 1: <a href=howdy.html>
1 ^5 a; l' U! ?4 i( o - part 2: click me" u) }5 U/ w# ~3 d* Q
- part 3: </a>
銴鋆賭誨蝣 7 A% N* @! w# B; ^: q: B
4 J2 E* I( U: j% `& X0 X0 G |
|