首頁 > 後端開發 > php教程 > 如何使用 PHP 從字串中提取方括號內的文字?

如何使用 PHP 從字串中提取方括號內的文字?

Barbara Streisand
發布: 2024-11-26 20:29:10
原創
766 人瀏覽過

How Can I Extract Text Enclosed in Square Brackets from a String Using PHP?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板