代码之家  ›  专栏  ›  技术社区  ›  Trip

regex-如果存在匹配项,则捕获一个数字

  •  1
  • Trip  · 技术社区  · 15 年前

    我想捕捉下后面的数字 vspace . 你在雷杰克斯会怎么做?这是一个示例字符串。

    <img align="left" alt="dude its me" border="10" height="168" hspace="30"  vspace="10" width="130" />
    

    所以最终结果是 10

    4 回复  |  直到 15 年前
        1
  •  2
  •   Peter    15 年前
    >> 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
    
        2
  •  2
  •   Community Mohan Dere    9 年前

    请记住,可以使用单引号、双引号或无引号指定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"]
    

    Never ever parse HTML with regular expressions.

        3
  •  1
  •   AllenG    15 年前

    捕捉 10 试试这个: (?=\bvspace=")?(\d+)

    /vspace="(\d+)" 应该与 vspace="10"

        4
  •  0
  •   Toto    15 年前
    /vspace="(\d+)"/$1/