在 PHP 中捕获方括号之间的多个文本段
问题:
如何捕获给定中方括号内的所有文本段string?
答案:
要捕获方括号之间的多个文本段,请使用以下正则表达式:
/\[[^\]]*\]/
此正则表达式匹配任何以方括号开头、包含任意数量的非方括号字符并以方括号结尾的字符串
要提取捕获的片段,请使用 preg_match_all() 函数。此函数将正则表达式模式和目标字符串作为输入,并返回包含所有匹配项的数组。以下 PHP 代码演示了如何使用此正则表达式捕获多个文本段:
$text = '[This] is a [test] string, [eat] my [shorts].'; preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
此代码生成以下输出:
array(4) { [0] => string(5) "[This]" [1] => string(5) "[test]" [2] => string(5) "[eat]" [3] => string(7) "[shorts]" }
提取不带括号的文本的替代方法:
要仅提取方括号内的文本,请使用以下命令正则表达式:
/\[([^\]]*)\]/
此正则表达式匹配以方括号开头、包含任意数量的非方括号字符并以方括号结尾的任何字符串。括号内的字符使用圆括号进行分组。
要提取不带方括号的捕获段,请使用第一个捕获组,如以下 PHP 代码所示:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
此代码产生以下输出:
array(4) { [0] => string(4) "This" [1] => string(4) "test" [2] => string(3) "eat" [3] => string(6) "shorts" }
以上是如何使用 PHP 提取方括号中的多个文本段?的详细内容。更多信息请关注PHP中文网其他相关文章!