我期望捕获vspace
之后的数字。你如何在正则表达式中做到这一点?这是一个示例字符串。正则表达式 - 如果存在匹配,则捕获一个数字
<img align="left" alt="dude its me" border="10" height="168" hspace="30" vspace="10" width="130" />
因此,最终结果将是10
我期望捕获vspace
之后的数字。你如何在正则表达式中做到这一点?这是一个示例字符串。正则表达式 - 如果存在匹配,则捕获一个数字
<img align="left" alt="dude its me" border="10" height="168" hspace="30" vspace="10" width="130" />
因此,最终结果将是10
>> s = '<img align="left" alt="dude its me" border="10" height="168" hspace="30" vspace="10" width="130" />'
>> /vspace="(\d+)"/.match(s)[1]
=> "10"
或者,如果你不知道它的存在与否:
if /vspace="(\d+)"/ =~ s
puts $1
else
puts "no match"
end
使用遵循Ruby约定的s.match(/.../)比从Perl继承的/.../ =〜s更具可读性,对于那些不熟悉的用户来说,看起来更像是线噪声这是什么意思。 – tadman 2010-07-27 20:36:34
为了捕捉只是10
试试这个:(?=\bvspace=")?(\d+)
/vspace="(\d+)"
应匹配整个vspace="10"
请记住,可以用单引号,双引号或不带引号指定vspace。
n = Nokogiri::HTML(%Q{<img align="left" alt="dude its me" border="10" height="168" hspace="30" vspace="10" width="130" />})
n.css("img").first["vspace"]
OT:有趣的你提供了这么多的属性,但你没有提到'src'。 :) – 2010-07-27 19:33:05
没有src的在这个例子的制作中受到伤害:) – Trip 2010-07-27 19:44:00