大家好,
我目前正在使用preg_match而我正在尝试提取一些信息用方括号括起来。
到目前为止,我已经使用了这个:
/\[(.*)\]/
但我希望它只是最后一次出现的内容 - 或者是第一次出现的内容,如果从最后开始!
以下内容:
string = "Some text here [value_a] some more text [value_b]"
我需要得到:
"value_b"
任何人都可以提出一些可以解决问题的方法吗?
谢谢!
答案 0 :(得分:5)
匹配:
/.*\[([^]]+)\]/
使用preg_match
(此处不需要_all
版本,因为您只需要最后一组)并在内部捕获该组。
您当前的正则表达式会在您输入的情况下捕获value_a] some more text [value_b
。在这里,第一个.*
吞下一切,但必须回溯一个[
匹配 - 输入中的最后一个。
答案 1 :(得分:0)
如果您只想要数字/字母(无符号),可以将\[([\w\d]+)\]
与preg_match_all()
一起使用,并将最后一个数组作为结束变量。您可以通过在字符类定义中转义它们来添加任何自定义符号。