在PHP 中捕獲方括號內的文字
在程式設計中,我們經常遇到需要從較大的字串中提取特定數據的情況。一個常見的場景是捕獲方括號內的文本,如提供的範例所示:
[This] is a [test] string, [eat] my [shorts].
目標是將這個字串轉換為數組:
[ '[This]', '[test]', '[eat]', '[shorts]' ]
雖然基本像/[.*?]/ 這樣的正規表示式似乎就足夠了,它只捕捉方括號的第一個實例。為了達到我們想要的輸出,我們需要一種修改的方法。
正規表示式解:
我們可以使用 preg_match_all 和修改後的正規表示式來符合其中出現的所有文字方括號。以下程式碼完成此動作:
preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
此程式碼使用下列正規表示式:
刪除括號的替代方法:
如果我們想要提取不含括號的文本,可以修改正規表示式略:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
此程式碼使用:
使用「*」量詞的第三個選項:
另一種雖然速度較慢的方法是使用「*」量詞代替"[^]":
preg_match_all("/\[(.*?)\]/", $text, $matches); var_dump($matches[1]);
透過使用這些正則表達式,我們可以有效地捕捉方括號內的文本,為我們提供初始問題陳述中所述的所需輸出。
以上是如何使用 PHP 從字串中提取方括號內的文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!