从字符串中的括号中获取文本

Woj*_*icz -1 php arrays match

我有一个字符串

This is [string] and its [text] and [stuff]
Run Code Online (Sandbox Code Playgroud)

我需要将文本[]放入数组中

array('string', 'text', 'stuff');
Run Code Online (Sandbox Code Playgroud)

kni*_*ttl 5

嵌套括号怎么样?但如果它只是这种简单的格式,你应该用正则表达式得到你需要的东西:

$matches = array()
preg_match_all('/\[([^]]+)]/', $subject, $matches);
Run Code Online (Sandbox Code Playgroud)

$matches是包含所有匹配项的多维数组.有关preg_match_all其格式的说明,请参阅文档.

正则表达式捕获两个括号之间的任何东西,这些括号不是括号并且至少有一个字符.分解:

  • \[:一个文字的开头括号
  • (:捕获组的开始
    • [^]]:不是结束括号
    • +: 一个或多个
  • ):捕获组结束
  • ]:一个字面上的结束括号