gpt4 book ai didi

php - 使用正则表达式解析方括号

转载 作者:可可西里 更新时间:2023-10-31 22:47:50 27 4
gpt4 key购买 nike

我在使用正则表达式时总是遇到困难。我已经为此寻求帮助,但我无法完全找到我要找的东西。

我有遵循这种模式的文本 block :

[php]...这里有任何类型的代码示例[/php]

我需要:

  • 检查方括号,它可以包含任意数量的 20-30 种编程语言名称(phpruby 等)。
  • 需要抓取左括号和右括号之间的所有代码。

我已经计算出以下正则表达式:

#\[([a-z]+)\]([^\[/]*)\[/([a-z]+)\]#i

这与一切都很相配。但是,当代码示例包含方括号时,它会中断。我该如何修改它,以便匹配那些左/右大括号之间的任何字符供以后使用?

最佳答案

这是您想要的正则表达式。它也匹配标签所在的位置,因此 php 标签只会结束 php 标签。

/\[(\w+)\](.*?)\[\/\1\]/s

或者,如果您想显式匹配可以使用的标签...

$langs = array('php', 'python', ...); 

$langs = implode('|', array_map('preg_quote', $langs));

preg_match_all('/\[(' . $langs . ')\](.*?)\[\/\1\]/s', $str, $matches);

关于php - 使用正则表达式解析方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6196427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com