PHP使用正則獲取一段文字中小括號內的內容段

重點語法知識

preg_match_all:執行一個全域性正則表示式匹配。

preg_match_all( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int|false|null

搜尋subject中所有匹配pattern給定正則表示式的匹配結果並且將它們以flag指定順序輸出到matches中。

在第一個匹配找到後, 子序列繼續從最後一次匹配位置搜尋。

重點就這一個PHP的關鍵函式也是經常用到一個正則匹配函式,正如手冊所說的就是專門用於執行正則表示式的,

preg_match_all

函式會返回一個多維陣列給指定的引數matches變數。

程式碼部分

簡單的寫了個測試的程式碼,實踐見真理比較重要!

#測試文字段$txtTest = ‘澳大利亞昆士蘭大堡礁 ( Gary Bell/Minden Pictures)’;#正則提取括號內的字元段,並賦值給$textOk,型別為arraypreg_match_all(‘/\((。*)\)/s’, $txtTest, $textOk);#輸出擷取的文字段print_r($textOk);

可以看看匹配正則後賦值給$textOk變數的情況是一個數組型別,閣主自己的理解是正則匹配至少會匹配出兩個或兩個以上的資料段,說以返回的引數資料是陣列型別,打印出來的可以很清晰的看到是這樣的,第一個是絕對匹配包括小括號的,第二個是對應的若(子)匹配,很多時候我們想要的都是第二種,所以就把它返回的當做陣列來處理即可。

PHP使用正則獲取一段文字中小括號內的內容段

就比如我們要輸出不帶括號和帶括號的就是如下運用,程式碼是死的但是人是活的,要靈活使用!基礎也很重要!

<?php#測試文字段$txtTest = ‘澳大利亞昆士蘭大堡礁 ( Gary Bell/Minden Pictures)’;#正則提取括號內的字元段,並賦值給$textOk,型別為arraypreg_match_all(‘/\((。*)\)/s’, $txtTest, $textOk);#輸出帶括號echo ‘帶括號:’ 。 $textOk[0][0] 。 ‘
’;#輸出不帶括號echo ‘不帶括號:’ 。 $textOk[1][0] 。 ‘
’;

PHP使用正則獲取一段文字中小括號內的內容段

總結

基礎很重要,正則在很多應用中都會出現,更多的是用於驗證或採集的方面,道生一,一生二,二生萬物,萬物離不開學習,加油!

頂部