2020年10月26日 星期一

[ PHP ] preg_match_all 執行全局正則表達式匹配

一、介紹

官網:https://www.php.net/manual/en/function.preg-match-all.php

1. PREG_PATTERN_ORDER:對結果進行排序,以使陣列[0]是完整語法的字串,陣列[1]是由第一個帶括號字串的值,依此類推。

2. PREG_SET_ORDER:對結果進行排序,以使陣列[0]是第一組匹配項的字串,陣列[1]是第二組匹配項的字串,依此類推。

3. PREG_OFFSET_CAPTURE:產生的匹配,還將返回附加字符串偏移量(以字節為單位)。

二、程式語法

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>preg_match_all 執行全局正則表達式匹配</title>

</head>

<body>

<?php

preg_match_all("|<div align='(.*)'>|U","<b>example: </b><div align='left'>this is a test</div><b>example2: </b><div align='center'>this is a test</div>",$out,PREG_PATTERN_ORDER);

print_r($out);

?>

</body>

</html>

顯示如下:

沒設定會使用 PREG_PATTERN_ORDER

1. PREG_PATTERN_ORDER:

結果:

Array

(

    [0] => Array

        (

            [0] => <div align='left'>

            [1] => <div align='center'>

        )


    [1] => Array

        (

            [0] => left

            [1] => center

        )


)

2. PREG_SET_ORDER:

結果:

Array

(

    [0] => Array

        (

            [0] => <div align='left'>

            [1] => left

        )


    [1] => Array

        (

            [0] => <div align='center'>

            [1] => center

        )


)

3. PREG_OFFSET_CAPTURE

結果:

Array

(

    [0] => Array

        (

            [0] => Array

                (

                    [0] => <div align='left'>

                    [1] => 16

                )


            [1] => Array

                (

                    [0] => <div align='center'>

                    [1] => 71

                )

        )


    [1] => Array

        (

            [0] => Array

                (

                    [0] => left

                    [1] => 28

                )

            [1] => Array

                (

                    [0] => center

                    [1] => 83

                )

        )

)

沒有留言:

張貼留言

影片的問題請留在影片的留言區裡。
部落格不會另外通知給我,所以很難發現你有留言。