Ruby正则表达式:"捕获字符串,除非它后跟......"

krn*_*krn 6 ruby regex

我的正则表达式捕获引用的短语:

"([^"]*)"
Run Code Online (Sandbox Code Playgroud)

我想通过忽略引号来改进它,后面跟着', - '(逗号,空格和破折号按此特定顺序).

我该怎么做呢?

测试:http://rubular.com/r/xls6vN1w92

Kob*_*obi 4

使用Negative Lookahead应该可以做到这一点:

"(?!, -)([^"]*)"(?!, -)
Run Code Online (Sandbox Code Playgroud)

有点恶心,但它有效。您需要确保引号后面没有跟您的字符串,否则匹配将从结束引号开始。

http://rubular.com/r/yFMyUKJOHL