ruby - 正则表达式 "(.*)"与 "([^"]*)"

标签 ruby regex

我想做的是获取引号之间的所有文本。这两个似乎都可以正常工作(使用 ruby )。有人可以告诉我这两者的工作方式是否存在差异,或者它们是否只是同一事物的不同表达方式。

编辑: 我主要关注获取 cucumber 步骤定义的双引号之间的文本(然后我应该看到“Hello World”)。

最佳答案

在多个引号字符串的情况下,第一个可能不会为您提供相同的数据:如果输入数据是,比如说

"hello" "world"

第一个表达式将匹配整个字符串,而第二个表达式将仅匹配 "hello" 部分。

一般来说,第二个表达式应该更快,因为没有回溯。这是一个 link to an article discussing this issue at length .

关于ruby - 正则表达式 "(.*)"与 "([^"]*)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898667/

相关文章:

ruby - 为什么 ruby​​ 的 inject 不能正确求和?

ruby - 是否有用于检查字符串是否为有效单词的 ruby​​ 库?

ruby-on-rails - 使用 rake db :create:all 创建 Postgres RDS

ruby-on-rails - 如何创建守护进程来在 Rails 堆栈中运行 SMTP 服务器?

Java正则表达式如果字符串包含数字

Javascript 正则表达式断言

javascript - 仅获取匹配项,而不是整个条目

javascript - 在 Rails 中显示闪光通知的最佳方式

java - 使用匹配器和模式从字符串中提取 float

javascript - mustache 格式的 Backbone /下划线模板导致#磅/哈希符号出错?