Regex查找方括号最后一次出现的内容


Regex to find content of the last occurence of square brackets

大家好,

我目前正在使用preg_match,并试图提取一些包含在方括号中的信息。

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

/'[(.*)']/

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

在以下内容中:

string = "Some text here [value_a] some more text [value_b]"

我需要得到:

"value_b"

有人能提出一些有用的建议吗?

谢谢

匹配:

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

使用preg_match(这里不需要_all版本,因为您只需要最后一个组)并捕获内部的组。

您当前的正则表达式和您的输入将捕获value_a] some more text [value_b。这里,第一个.*包含所有内容,但必须回溯才能匹配[——输入中的最后一个。

如果只需要数字/字母(没有符号),可以将'[(['w'd]+)']preg_match_all()一起使用,并将数组的最后一个作为结束变量。您可以通过在字符类定义中转义来添加任何自定义符号。

'[([^']]*)'][^'[]*$

在regexr 上查看

var someText="Some text here [value_a] some more text [value_b]";
alert(someText.match(/'[([^']]*)'][^'[]*$/)[1]);

括号内的部分存储在捕获组1中,因此需要使用match()1来访问结果。

对于简单的制动,请参阅源代码:Regex,用于获取最后一个括号之间的文本()