我有一个看起来像这样的字符串:
one[two][three][four]
Run Code Online (Sandbox Code Playgroud)
我想捕获最后一个括号的内容,所以我尝试了这个:
/\[(.*)\]$/
Run Code Online (Sandbox Code Playgroud)
但是,返回的结果是:
two][three][four
Run Code Online (Sandbox Code Playgroud)
如何形成正则表达式以仅匹配最后一个括号的内容?
你正在使用贪心量词,它读取第一个[和最后一个之间的所有内容].你可以使用下面的正则表达式:
/\[([^\]]*)\]$/
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因,你]是不是在字符串的结尾,那么你可以使用添加另一个字符类匹配任何字符,但[与]年底前:
/\[([^\]]*)\][^\[\]]*$/
Run Code Online (Sandbox Code Playgroud)
但是,老实说,这个问题应该更好地使用字符串操作而不是使用正则表达式来解决,就像@gdoron的回答一样.