匹配字符串,但仅捕获其在 ruby 中匹配的子字符串



我正在为我的jekyll站点扩展rouge shell词法分析器,我想执行以下操作。

  1. 匹配--word .捕获word,丢弃--
  2. 匹配<word> .捕获word,丢弃<>
  3. 匹配word=anyNumber.word .捕获wordanyNumber.word,丢弃=

首先我尝试了/(?=-+)w/,没有匹配任何东西,然后我尝试反向并丢弃word例如/-+(?=w*)/,它奏效了。我做错了什么?

我怀疑你想多了。你不需要在这里向前看或向后看。

str = "foo --word1 <word2> word3=anyNumber.word4"
p /--(w+)/.match(str).captures
# => ["word1"]
p /<([^>]+)>/.match(str).captures
# => ["word2"]
p /(w+)=([w.]+)/.match(str).captures
# => ["word3", "anyNumber.word4"]
str = "--hopscotch <dodgeball> cat=9.lives"
str[/(?<=--)w+/]
  #=> "hopscotch" 
str[/(?<=<)w+(?=>)/]
  #=> "dodgeball" 
str.scan /(?:w+(?==))|(?<==)d+.w+/
  #=> ["cat", "9.lives"] 

相关内容

  • 没有找到相关文章

最新更新