首页 >后端开发 >php教程 >如何使用 PHP 正则表达式提取方括号中的文本?

如何使用 PHP 正则表达式提取方括号中的文本?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-28 15:57:101065浏览

How to Extract Text Enclosed in Square Brackets Using PHP Regular Expressions?

在 PHP 中提取方括号内的文本

在 PHP 中捕获方括号之间的文本的挑战需要采取细致入微的方法。使用 /[.*?]/ 作为正则表达式的常见尝试仅检索第一个实例,导致结果不完整。

捕获外壳:

要克服此限制,请使用将整个文本包含在方括号内的正则表达式。考虑以下模式:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);

这里, /[1]/ 用作正则表达式,对应于方括号中包含的任何字符串。插入符号 (^) 与字符串的开头匹配,后跟括号。 2 部分表示不是括号的字符。星号 () 匹配任意数量的出现,尾部括号结束该模式。

在提供的文本上运行此正则表达式将导致:

Array (
     [0] => [This]
     [1] => [test]
     [2] => [eat]
     [3] => [shorts]
)

捕获内部文本:

或者,您可能希望提取文本而不使用括号。这需要修改正则表达式:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);

在此正则表达式中,(3*) 捕获方括号内的任何字符,从而有效地从输出中删除括号。您将获得:

Array (
     [0] => This
     [1] => test
     [2] => eat
     [3] => shorts
)

请记住,此正则表达式假定方括号未嵌套在文本中。


  1. ]
  2. ]
  3. ]

以上是如何使用 PHP 正则表达式提取方括号中的文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn