【发布时间】:2022-02-12 03:18:30
【问题描述】:
大家好,
我目前正在使用 preg_match,我正在尝试提取一些信息括在方括号中。
到目前为止,我已经使用了这个:
/\[(.*)\]/
但我希望它只是最后一次出现的内容 - 或者第一个,如果从最后开始!
如下:
string = "Some text here [value_a] some more text [value_b]"
我需要得到:
"value_b"
任何人都可以提出一些可以解决问题的方法吗?
谢谢!
【问题讨论】:
-
使用
preg_match_all和你想要的值。更重要的是:让量词变得懒惰:.*?. -
@FelixKling:不需要惰性量词,只需使用补充字符类 - 请参阅我的答案。事实上,你应该学会尽可能避免懒惰的量词。
-
@fge:没错,会更快……他还是应该用
preg_match_all。 -
好吧,如果只是最后一场比赛,那就没必要了——让
.*把它全部吃掉,然后回溯到第一个[