增强用正则表达式编写的搜索查询以支持空格

时间:2016-01-18 16:59:41

标签: ruby

我有以下正则表达式:

/("[^"]+"|[^\s]+:[^\s]+)/

如果我给它以下内容:

tag:closed  tag:open tag:Trello status:new

它将匹配这些组:

  1. tag:closed
  2. tag:open
  3. tag:Trello
  4. status:new
  5. 我尝试增强它以支持空格,以便匹配:

    tag:"don't merge"
    

    我试过了:

    /("[^"]+"|[^\s]+:[^\s]+|["\w\s"]+)/
    

    但这不起作用。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

http://rubular.com/r/DNWKz44BbF

您需要在其他匹配中否定双引号,否则它是正则表达式使用的较短匹配。

([^\s]+:"[^"]+"|[^\s]+:[^\s"]+)

答案 1 :(得分:-3)

/(\S+:(?:"[^"]+"|\S+))/

.............................