説明
int
preg_match_all ( string pattern, string subject, array matches, int
[order])
subjectã«ãŠã„ã¦
patternã§æŒ‡å®šã—ãŸæ£è¦è¡¨ç¾ã«ãƒžãƒƒãƒã™ã‚‹
ã‹ã©ã†ã‹ã‚’検索ã—ã€orderã§æŒ‡å®šã—ãŸ
é †ç•ªã§ matchesã«çµæžœã‚’代入ã—ã¾ã™ã€‚
最åˆã«ãƒžãƒƒãƒã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã£ãŸå¾Œã€æœ€å¾Œã«ãƒžãƒƒãƒã—ãŸãƒ‘ターンã®å¾Œã‹ã‚‰
検索ãŒç¶šè¡Œã•れã¾ã™ã€‚
orderã¯ã€æ¬¡ã®2ã¤ã®ã©ã¡ã‚‰ã‹ã¨ãªã‚Šã¾ã™ã€‚
- PREG_PATTERN_ORDER
$matches[0] ãŒãƒ‘ターン全体ã«ãƒžãƒƒãƒã™ã‚‹é…列ã§ã‚りã€
$matches[1] ãŒæœ€åˆã®æ‹¬å¼§ã§æ‹¬ã‚‰ã‚ŒãŸã‚µãƒ–パターンã«ãƒžãƒƒãƒã™ã‚‹
æ–‡å—列ã®é…列ã§ã‚りã€ã¨ã„ã£ãŸé †ç•ªã¨ãªã‚Šã¾ã™ã€‚
ã“ã®ä¾‹ã®å‡ºåŠ›ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
$out[0]ã¯ã€ãƒ‘ターン全体ã«ãƒžãƒƒãƒã™ã‚‹æ–‡å—列ã®é…列を有ã—ã¦ãŠã‚Šã€
$out[1]ã¯ã€ã‚¿ã‚°ã§å›²ã¾ã‚ŒãŸæ–‡å—列ã®é…列を有ã—ã¦ã„ã¾ã™ã€‚
- PREG_SET_ORDER
$matches[0]ã¯æœ€åˆã«ãƒžãƒƒãƒã—ãŸçµ„ã®é…列ã§ã‚りã€
$matches[1]ã¯äºŒç•ªç›®ã«ãƒžãƒƒãƒã—ãŸçµ„ã®é…列ã§ã‚りã€
ã¨ã„ã£ãŸé †åºã¨ãªã‚Šã¾ã™ã€‚
ã“ã®ä¾‹ã®å‡ºåŠ›ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
ã“ã®å ´åˆã€$matches[0] ã¯æœ€åˆã«ãƒžãƒƒãƒã—ãŸçµ„ã§ã‚りã€
$matches[0][0] ã¯ãƒ‘ターン全体ã«ãƒžãƒƒãƒã—ãŸãƒ†ã‚ストã€
$matches[0][1] ã¯æœ€åˆã®ã‚µãƒ–パターンã«ãƒžãƒƒãƒã—ãŸãƒ†ã‚ストã€
ã¨ã„ã£ãŸã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
åŒæ§˜ã«ã€$matches[1]ã¯äºŒç•ªç›®ã«ãƒžãƒƒãƒã—ãŸçµ„ã¨ã„ã£ãŸã‚ˆã†ã«ãªã‚Š
ã¾ã™ã€‚
orderãŒæŒ‡å®šã•れãªã„å ´åˆã€PREG_PATTERN_ORDER
を仮定ã—ã¾ã™ã€‚
パターンãŒãƒžãƒƒãƒã—ãŸç·æ•°ã‚’è¿”ã—ã¾ã™ã€‚ã¾ãŸã¯ã€ãƒžãƒƒãƒã—ãªã‹ã£ãŸã‹ã€
エラーãŒç™ºç”Ÿã—ãŸå ´åˆã«FALSEã‚’è¿”ã—ã¾ã™ã€‚
例 1テã‚ストã‹ã‚‰å…¨ã¦ã®é›»è©±ç•ªå·ã‚’å¾—ã‚‹ preg_match_all ("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x",
"Call 555-1212 or 1-800-555-1212", $phones); |
|
例 2HTMLã‚¿ã‚°ã«ãƒžãƒƒãƒã™ã‚‹ã‚‚ã®ã‚’見付ã‘ã‚‹(greedy) // \\2 ã¯å¾Œæ–¹å‚ç…§ã®ä¾‹ã§ã™ã€‚ã“れã¯ã€pcre ã«æ£è¦è¡¨ç¾è‡ªä½“ã®æ‹¬å¼§ã®2番目ã®
// 組ã€ã¤ã¾ã‚Šã“ã®å ´åˆã¯([\w]+)ã€ã«ãƒžãƒƒãƒã—ã¾ã™ã€‚æ–‡å—列ãŒäºŒé‡å¼•ç”¨ç¬¦ã§æ‹¬
// られã¦ã„ã‚‹ãŸã‚ã€ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã®è¿½åŠ ãŒå¿…è¦ã§ã™ã€‚
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);
for ($i=0; $i< count($matches[0]); $i++) {
echo "matched: ".$matches[0][$i]."\n";
echo "part 1: ".$matches[1][$i]."\n";
echo "part 2: ".$matches[3][$i]."\n";
echo "part 3: ".$matches[4][$i]."\n\n";
} |
|
ã“ã®ä¾‹ã®å‡ºåŠ›ã¯ä»¥ä¸‹ã¨ãªã‚Šã¾ã™ã€‚
matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>
matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a> |
preg_match(),
preg_replace(),
preg_split()ã‚‚å‚照下ã•ã„。