我正在尝试匹配字符串中的特定单词,但它匹配整个字符串
doc = "<span>Hi welcome to world</span>"
puts doc.match(/<span>(.*?)<\/span>/)
此代码打印整个字符串
输出:
<span>Hi welcome to world</span>
但我只想要
Hi welcome to world
另一个问题是这个程序的输出只是一个整数
doc = "<span>Hi welcome to world</span>"
puts doc =~ (/<span>(.*?)<\/span>/)
输出:
0
答案 0 :(得分:4)
你应该把第一个匹配组:
puts doc.match(/<span>(.*?)<\/span>/)[1]
# => Hi welcome to world
回答您的另一个问题
匹配 - 如果obj是Regexp,则将其用作匹配str的模式,并返回匹配开始的位置,如果没有匹配则返回nil。
答案 1 :(得分:0)
与RegEx匹配后,您可以使用$ 1,$ 2,...来输出匹配的组。所以你可以这样做:
doc.match(/<span>(.*?)<\/span>/)
puts $1
您可以查看What are Ruby's numbered global variables以获取有关其他变量的详细说明,例如$&#39;。