正则表达式获取最后一项

3
我对正则表达式还不熟悉,如果这很基础,请原谅。我有一个字符串:something "some item" something "another item"和一个表达式:".*"。当我运行它时,我得到的是"some item" something "another item",但实际上我只想要"another item"。是否可以修改表达式来实现这一点?它将通过RegExKit使用。

请指明您正在使用正则表达式的编程语言。 - Matt Ball
1
“another item”和“something “another item””有什么区别?你是在寻找第二个带引号的子字符串吗? - Cameron
我正在寻找最后一个被引用的子字符串,无论有多少个。 - nosedive25
3个回答

4

根据你提供的唯一示例,这将起作用:

("[^"]*")$

它匹配输入结尾处一对双引号之间的所有内容,包括引号本身。


我正在寻找最后一个被引用的子字符串,无论有多少个都可以。

在这种情况下,上面的代码并不一定能够实现你想要的功能。请尝试使用以下代码:

.*("[^"]*")

查看@mhyfrtiz的答案,了解.*部分的解释。


1

这将会生效

.*"(.*)"

这是利用了量词*的贪婪性,因此第一个.*将会消耗整个文本。之后,正则表达式引擎回溯(即从末尾向前遍历字符串),直到字符串中最后一个".*"出现匹配为止。


0
"[^"]*"$

应该适用于大多数编程语言,包括JavaScript;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接