- i (PCRE_CASELESS)
ã“ã®ä¿®é£¾åãŒè¨å®šã•れã¦ã„ã‚‹å ´åˆã€ãƒ‘ターンã®ä¸ã®æ–‡å—ã¯
大文å—ã«ã‚‚å°æ–‡å—ã«ã‚‚マッãƒã—ã¾ã™ã€‚
- m (PCRE_MULTILINE)
デフォルトã§ã€PCREã¯æ¤œç´¢å¯¾è±¡æ–‡å—列を(実際ã«ã¯è¤‡æ•°è¡Œã‹ã‚‰ãªã‚‹
å ´åˆã§ã‚‚)å˜ä¸€ã®è¡Œã‹ã‚‰ãªã‚‹ã¨ã—ã¦å‡¦ç†ã—ã¾ã™ã€‚
"行é "ãƒ¡ã‚¿æ–‡å— (^) ã¯æ–‡å—åˆ—ã®æœ€åˆã«ã—ã‹ãƒžãƒƒãƒã—ã¾ã›ã‚“。
一方ã€"行ã®çµ‚端"ãƒ¡ã‚¿æ–‡å— ($) ã¯æ–‡å—列ã®çµ‚ã‚りã¾ãŸã¯
(D 修飾åãŒè¨å®šã•れã¦ã„ãªã„å ´åˆã€)
çµ‚ç«¯ã‚’è¡¨ã™æ”¹è¡Œè¨˜å·ã®å‰ã®ã¿ã«ã—ã‹ãƒžãƒƒãƒã—ã¾ã›ã‚“。
ã“ã®å‹•作㯠Perl ã¨åŒã˜ã§ã™ã€‚
ã“ã®ä¿®é£¾åãŒè¨å®šã•れãŸå ´åˆã€"行é "ãŠã‚ˆã³"行末"ã¯
subjectæ–‡å—列ã«ãŠã„ã¦ã€æ–‡å—åˆ—ã®æœ€åˆã¨æœ€å¾Œã¨åŒã˜ã«ã€
儿”¹è¡Œã®ç›´å‰ã¨ç›´å¾Œã«ãれãžã‚Œãƒžãƒƒãƒã—ã¾ã™ã€‚
ã“ã®å‹•作ã¯ã€Perl ã® /m 修飾åã¨åŒã˜ã§ã™ã€‚
subject æ–‡å—列ã®ä¸ã« "\n" æ–‡å—ãŒãªã„å ´åˆã€
ã¾ãŸã¯ãƒ‘ターン㫠^ ã¾ãŸã¯ $ ãŒãªã„å ´åˆã€
ã“ã®ä¿®é£¾åã‚’è¨å®šã—ã¦ã‚‚æ„味ã¯ã‚りã¾ã›ã‚“。
- s (PCRE_DOTALL)
ã“ã®ä¿®é£¾åãŒè¨å®šã•れãŸå ´åˆã€ãƒ‘ターンä¸ã®ãƒ‰ãƒƒãƒˆãƒ¡ã‚¿æ–‡å—ã¯
改行をå«ã‚€å…¨ã¦ã®æ–‡å—ã«ãƒžãƒƒãƒã—ã¾ã™ã€‚
ã“れを指定ã—ãªã„å ´åˆã€æ”¹è¡Œã¯é™¤ã‹ã‚Œã¾ã™ã€‚
ã“ã®ä¿®é£¾åã¯ã€Perl ã® /s 修飾åã¨ç‰ä¾¡ã§ã™ã€‚
[^a] ã®ã‚ˆã†ãªå¦å®šã‚¯ãƒ©ã‚¹ã¯ã€
ã“ã®ä¿®é£¾åã®è¨å®šã«ã‚ˆã‚‰ãšã€å¸¸ã«æ”¹è¡Œæ–‡å—ã«ãƒžãƒƒãƒã—ã¾ã™ã€‚
- x (PCRE_EXTENDED)
ã“ã®ä¿®é£¾åãŒè¨å®šã•れãŸå ´åˆã€ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã™ã‚‹ã‹
æ–‡å—クラスã®å†…部ã«ã‚ã‚‹å ´åˆã‚’除ãã€
パターンã®ç©ºç™½æ–‡å—ã¯å®Œå…¨ã«ç„¡è¦–ã•れã¾ã™ã€‚
エスケープã•れã¦ã„ãªã„æ–‡å—クラスã®å¤–ã«ã‚ã‚‹ # ã¨æ¬¡ã®æ”¹è¡Œæ–‡å—ã®é–“
ã®æ–‡å—も無視ã•れã¾ã™ã€‚
ã“ã®å‹•作ã¯ã€Perl ã® /x 修飾åã¨åŒã˜ã§ã‚りã€è¤‡é›‘ãªãƒ‘ターンã®å†…部ã«
コメントをå«ã‚€ã“ã¨ãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚
ã—ã‹ã—ã€ã“ã®ä¿®é£¾åã¯ã€ãƒ‡ãƒ¼ã‚¿æ–‡å—ã«ã®ã¿é©ç”¨ã•れるã“ã¨ã«æ³¨æ„
ã—ã¦ä¸‹ã•ã„。空白文å—をパターンã®ç‰¹æ®Šæ–‡å—ã®ä¸¦ã³ã®ä¸ã€
例ãˆã°æ¡ä»¶ä»˜ã‚µãƒ–パターン(?) ã®å†…部ã«ç½®ãã“ã¨ã¯ã§ãã¾ã›ã‚“。
- e
ã“ã®ä¿®é£¾åãŒè¨å®šã•れã¦ã„ã‚‹å ´åˆã€preg_replace()
ã¯ã€ç½®æ›æ–‡å—列ã«ãŠã„ã¦å¾Œæ–¹å‚ç…§ã«é–¢ã™ã‚‹é€šå¸¸ã®ç½®æ›ã‚’行ã£ãŸå¾Œã€
PHP コードã¨ã—ã¦è©•価ã—ã€æ¤œç´¢æ–‡å—列を置æ›ã™ã‚‹ãŸã‚ã«ãã®çµæžœã‚’
使用ã—ã¾ã™ã€‚
ã“ã®ä¿®é£¾åを使用ã™ã‚‹ã®ã¯ã€preg_replace()ã®ã¿ã§ã™ã€‚
ä»–ã® PCRE 関数ã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚
- A (PCRE_ANCHORED)
ã“ã®ä¿®é£¾åãŒè¨å®šã•れãŸå ´åˆã€ãƒ‘ターンã¯å¼·åˆ¶çš„ã«"anchored"ã¨ãªã‚Šã¾ã™ã€‚
ã“ã®å ´åˆã€æ¤œç´¢ã•れる文å—列("検索対象文å—列")ã®å…ˆé ã«
ã®ã¿ãƒžãƒƒãƒã™ã‚‹ã‚ˆã†ã«åˆ¶é™ã•れã¾ã™ã€‚
パターン自体ã®ä¸ã«é©å½“ãªæŒ‡å®šã‚’行ã†ã“ã¨ã§ã‚‚
åŒæ§˜ã®åŠ¹æžœã‚’å¾—ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã€Perlã§ã¯ã“ã®æ–¹æ³•ã—ã‹ä½¿ç”¨
ã§ãã¾ã›ã‚“。
- D (PCRE_DOLLAR_ENDONLY)
ã“ã®ä¿®é£¾åãŒè¨å®šã•れã¦ã„ã‚‹å ´åˆã€ãƒ‘ターン内ã®ãƒ¡ã‚¿è¨˜å·ã®ãƒ‰ãƒ«
ã¯ã€æ¤œç´¢å¯¾è±¡æ–‡å—列ã®çµ‚ã‚りã«ã®ã¿ãƒžãƒƒãƒã—ã¾ã™ã€‚
ã“ã®ä¿®é£¾åを指定ã—ãªã„å ´åˆã€ãƒ‰ãƒ«è¨˜å·ã¯æ”¹è¡Œæ–‡å—ã®ç›´å‰ã®
æ–‡å—(ãŸã ã—ã€æ”¹è¡Œæ–‡å—以外)ã«ã‚‚マッãƒã—ã¾ã™ã€‚
ã“ã®ä¿®é£¾åã¯ã€m ãŒè¨å®šã•れã¦ã„ã‚‹å ´åˆã«
無視ã•れã¾ã™ã€‚
Perlã«ã¯ã€ã“ã®ä¿®é£¾åã«ç‰ä¾¡ãªã‚‚ã®ã¯ã‚りã¾ã›ã‚“。
- S
ã‚るパターンを複数回使用ã™ã‚‹å ´åˆã€ãƒžãƒƒãƒãƒ³ã‚°ã«ã‹ã‹ã‚‹æ™‚é–“ã‚’
高速化ã™ã‚‹ã“ã¨ã‚’目的ã¨ã—ã¦ã€ãƒ‘ターン解æžã«ã‚ˆã‚Šæ™‚é–“ã‚’ã‹ã‘ã‚‹
価値ãŒã‚りã¾ã™ã€‚
ã“ã®ä¿®é£¾åã‚’è¨å®šã—ãŸå ´åˆã€ã“ã®ã‚ˆã†ãªã‚ˆã‚Šæ™‚é–“ã‚’ã‹ã‘ãŸè§£æžãŒ
行ã‚れã¾ã™ã€‚ç¾åœ¨ã€ãƒ‘ターン解æžã¯ã€
最åˆã®æ–‡å—ãŒå˜ä¸€ã®å›ºå®šã•れã¦ã„ãªã„アンカー付ãã§ãªã„パターンã§ã®ã¿
有用ã§ã™ã€‚
- U (PCRE_UNGREEDY)
ã“ã®ä¿®é£¾åã¯ã€ãƒ‡ãƒ•ォルトã§è²ªæ¬²ã§ãªã„ãŒã€"?" ãŒå¾Œã«ä»˜ãã¨è²ªæ¬²
ã«ãªã‚‹é‡å化器ã®å‹•作をå転ã—ã¾ã™ã€‚ã“ã®ä¿®é£¾åã¯Perl互æ›ã§ã¯æœ‰
りã¾ã›ã‚“。ã“ã®ä¿®é£¾åã®æŒ‡å®šã¯ã€(?U) 修飾åã®ã‚ˆã†ã«ãƒ‘ターン内
ã§ã‚‚行ã†ã“ã¨ãŒã§ãã¾ã™ã€‚
- X (PCRE_EXTRA)
ã“ã®ä¿®é£¾åã¯ã€Perl ã¨äº’æ›æ€§ãŒãªã„ PCRE ã®ä»˜åŠ çš„ãªæ©Ÿèƒ½ã‚’オンã«ã—ã¾ã™ã€‚
パターン内ã§å¾Œã‚ã«æ–‡å—ãŒç¶šããƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ç‰¹åˆ¥ãªæ„味ãŒãªã„
ã‚‚ã®ã¯ã€å°†æ¥çš„ãªæ‹¡å¼µã®éš›ã®äº’æ›æ€§ã®ç¶æŒã®ãŸã‚ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚
デフォルトã§ã¯ã€Perl ã®ã‚ˆã†ã«æ–‡å—ãŒå¾Œã‚ã«ç¶šããƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥
ã§ç‰¹ã«æ„味ãŒãªã„ã‚‚ã®ã¯ã€ãƒªãƒ†ãƒ©ãƒ«ã¨ã—ã¦å‡¦ç†ã•れã¾ã™ã€‚
ã“ã®ä¿®é£¾åã«ã‚ˆã‚Šåˆ¶å¾¡ã•れる機能ã¯ã€ç¾åœ¨ä»–ã«ã‚りã¾ã›ã‚“。
- u (PCRE_UTF8)
ã“ã®ä¿®æ£åã¯ã€Perléžäº’æ›ãªPCREã®æ©Ÿèƒ½ã‚’有効ã«ã—ã¾ã™ã€‚パターン
æ–‡å—列ã¯ã€UTF-8エンコードã•ã‚ŒãŸæ–‡å—列ã¨ã—ã¦å‡¦ç†ã•れã¾ã™ã€‚ã“
ã®ä¿®æ£åã¯ã€PHP-4.1.0以é™ã§ä½¿ç”¨å¯èƒ½ã§ã™ã€‚