0

我正在rouge为我的网站扩展 shell 词法分析器,jekyll我想做以下事情。

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

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

4

2 回答 2

2

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

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"]
于 2016-06-01T01:38:52.267 回答
0
str = "--hopscotch <dodgeball> cat=9.lives"

str[/(?<=\-\-)\w+/]
  #=> "hopscotch" 
str[/(?<=\<)\w+(?=\>)/]
  #=> "dodgeball" 
str.scan /(?:\w+(?=\=))|(?<=\=)\d+\.\w+/
  #=> ["cat", "9.lives"] 
于 2016-06-01T01:43:02.447 回答