0

如何匹配句子中最后引用的单词(或末尾的引号中的第一个单词)并在不带引号的情况下打印它?

例子:I "need" a help with "regular" expressions.

输出:regular

4

5 回答 5

2

您可以使用

(?<=")[^"]*(?="[^"]*$)

演示


正则表达式如下所示:

正则表达式可视化

调试演示

于 2013-10-11T13:22:44.717 回答
1

这个正则表达式会做:

(?<=")[^"]*(?="[^"]*$)

用 grep 测试:

kent$  echo 'I "need" a help with "regular" expressions.'|grep -Po '(?<=")[^"]*(?="[^"]*$)'                                                                                       
regular
于 2013-10-11T13:22:44.790 回答
1

使用前瞻:

(?<=")[^"]+(?="[^"]*$)

它断言单词周围的结束引号是句子中的最后一个引号。

整个比赛就是这个词。

查看此正则表达式与您的例句一起使用的现场演示。

于 2013-10-11T13:22:24.727 回答
0

您可以确保使用此正则表达式捕获后没有引号。

/"([^"]+)"[^"]*$/
于 2013-10-11T18:27:09.213 回答
0

考虑以下正则表达式...

(?<=[\w\s\"]*\")\w*(?=\"[\w\s]*\.)
于 2013-10-11T14:36:20.587 回答