php - 正则表达式查找最后一次出现的方括号的内容

标签 php regex

大家好,

我目前正在使用 preg_match,并且正在尝试提取方括号内中的一些信息。

到目前为止,我已经使用过这个:

/\[(.*)\]/

但我希望它只是最后一次出现的内容 - 或者是第一次出现的内容,如果从末尾开始的话!

如下:

string = "这里有一些文字 [value_a] 还有一些文字 [value_b]"

我需要得到:

“value_b”

有人可以建议一些可以解决问题的方法吗?

谢谢!

最佳答案

匹配对象:

/.*\[([^]]+)\]/

使用 preg_match (此处不需要 _all 版本,因为您只需要最后一组)并捕获其中的组。

您当前的正则表达式根据您的输入,将捕获value_a]更多文本[value_b。在这里,第一个 .* 吞噬了所有内容,但必须回溯以匹配 [ - 输入中的最后一个。

关于php - 正则表达式查找最后一次出现的方括号的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8750135/

相关文章:

php - MySQL,使用预准备语句插入时 DEFAULT 不起作用

regex - Perl 正则表达式从替换中返回匹配项

python - 是否有单一的匹配和替换功能?

regex - 主题标签中允许使用哪些字符

php - 运行 Symfony 控制台命令后 Docker php-fpm 容器退出并显示代码 0

php - 将mysql while循环数据保存到数组中,然后保存到数据库中

php - 如何确定同一列中日期之间的差异?

php - 来自mysql结果的多维数组

python 动态范围正则表达式

python - Tornado url 正则表达式