|
Page 3 of 3 Bài viết này sẽ giới thiệu về các modifiers | Modifier | Chức năng
| | i | Không phân biệt chữ hoa và chữ thường
| | m | Thay đổi ý nghĩa của ^ và $, theo đó, ^ sẽ phù hợp với ngay sau \n (newline character) và $ phù hợp với ngay trước \n $str = "ABC\nDEF\nGHI"; preg_match('@^DEF@', $str, $matches1); preg_match('@^DEF@m', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quả là Array ( ) Array ( [0] => DEF )
| | s | Khi dùng modifier này, dấu chấm (.) sẽ phù hợp với \n. Mặc định (ko dùng) là không $str = "ABC\nDEF\nGHI"; preg_match('@BC.DE@', $str, $matches1); preg_match('@BC.DE@s', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quả là Array ( ) Array ( [0] => BC DE )
| | x | Bạn có thể thêm tùy ý khoảng trắng trong mẫu mà không ảnh hưởng kết quả tìm kiếm $str = "ABC\nDEF\nGHI"; preg_match('@A B C@', $str, $matches1); preg_match('@A B C@x', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quả là Array ( ) Array ( [0] => ABC )
| | e | Chỉ có tác dụng khi bạn dùng hàm preg_replace. Nếu dùng modifier này, chuỗi thay thế của bạn được xem như dòng lệnh PHP. Ví dụ: $content = preg_replace('@name="(.*?)"@e','strtolower("\\1")',$content); | | a | Giống như việc bạn dùng ^ trong mẫu $str = "ABC"; preg_match('@BC@', $str, $matches1); preg_match('@BC@A', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quà là Array ( [0] => BC ) Array ( )
| | D | Làm cho kí tự $ chỉ phù hợp với những chuỗi tận cùng không là newline \n $str = "ABC\n"; preg_match('@BC$@', $str, $matches1); preg_match('@BC$@D', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quả là Array ( [0] => BC ) Array ( )
| | U | <?php $str = '<a href="http://php.net/">PHP</a> has an '. '<a href="http://php.net/manual">excellent</a> manual.'; $pattern = '@<a.*>(.*)</a>@'; preg_match($pattern, $str, $matches); print_r($matches); ?>
Kết quà là Array ( [0] => <a href="http://php.net/">PHP</a> has an <a href="http://php.net/manual">excellent</a> [1] => excellent )
Nếu không dùng modifier U, bạn sẽ nhận được kết quả từ <a đầu tiên đến </a> cuối cùng và phần tử 1 của mảng sẽ ứng với kết quả cuối cùng phù hợp là excellent. Nếu dùng U, bạn thay $pattern thành $pattern = '@<a.*>(.*)</a>@U'; thì kết quả là Array ( [0] => <a href="http://php.net/">PHP</a> [1] => PHP ) Lấy từ <a đầu tiên cho đến </a> gần nhất. Và phần tử mang chỉ số 1 sẽ ứng với kết quả đầu tiên tìm thấy. | | X | Tắt thông báo lỗi nếu tìm thấy một escape character không hợp lệ. $str = '\\h'; preg_match('@\\h@', $str, $matches1); preg_match('@\\h@X', $str, $matches2); ?>
kết quả là Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /dat/docs/book/ prenticehall/php5powerprogramming/chapters/draft/10- mainstream-extensions/pcre/mod-X.php on line 4
| | u | Bật chế độ UTF-8, PRCE sẽ hiểu mẫu bạn đưa vào là mã hóa dàng utf-8. Dấu chấm (.) sẽ đại diện cho những kí tự như é.... $str = 'Dérick'; preg_match('@D.rick@', $str, $matches1); preg_match('@D.rick@u', $str, $matches2); print_r($matches1); print_r($matches2); ?>
kết quả là Array ( ) Array ( [0] => Dérick )
| Nguồn: http://quanphp.net/forum/viewtopic.php?t=21
Newer news items:
Older news items: |