javascript - 如何创建一个正则表达式来匹配最后一次出现的东西?

标签 javascript regex

我有一个看起来像这样的字符串:

one[two][three][four]

我想捕获最后一个括号的内容,所以我尝试了这个:

/\[(.*)\]$/

但是,返回的结果是:

two][three][four

如何构建正则表达式以仅匹配最后一个括号的内容?

最佳答案

您正在使用贪婪量词,它读取第一个 [ 和最后一个 ] 之间的所有内容。您可以使用以下正则表达式:

/\[([^\]]*)\]$/  

如果碰巧你的 ] 不在字符串的末尾,那么你可以使用添加另一个字符类来匹配除 [ 之外的任何字符>] 结束前:

/\[([^\]]*)\][^\[\]]*$/

但是,老实说,这个问题最好使用字符串操作来解决,而不是使用正则表达式,如 @gdoron's answer.

关于javascript - 如何创建一个正则表达式来匹配最后一次出现的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598076/

相关文章:

mysql - 如何使查询更新 fasion mysql 的查找和替换排序中的列?

mysql - 如何使用正则表达式在mysql中搜索JSON数据

regex - 为什么这个 Swift RegEx 匹配 "e1234"?

javascript - 将两个 Promise 包装在一个函数中

javascript - 在 Raspberry Pi 上从网络控制 C 程序

javascript - 无法运行 Node.js 应用程序,因为 : 'Failed to lookup view "error"in views directory'

regex - XSLT 2.0 中的正则表达式是什么方言?

regex - 正则表达式匹配以某个字符或空格开头然后是那个字符的行

javascript - 未捕获的类型错误 : Object #<an Object> has no method 'fullCalendar'

javascript - 通过 JavaScript 点击 Flash 对象