我正在rouge
为我的网站扩展 shell 词法分析器,jekyll
我想做以下事情。
- 匹配
--word
。捕获word
,丢弃--
。 - 匹配
<word>
。捕获word
,丢弃两者<
和>
。 - 匹配
word=anyNumber.word
。捕获word
和anyNumber.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"]