Regex - захват числа, если совпадение существует - PullRequest
1 голос
/ 27 июля 2010

Я хочу запечатлеть только число после vspace. Как бы вы сделали это в регулярном выражении? Вот пример строки.

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

Таким образом, конечный результат будет 10

Ответы [ 4 ]

2 голосов
/ 28 июля 2010

Помня о том, что 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"]

Никогда не анализируйте HTML с регулярными выражениями.

2 голосов
/ 27 июля 2010
>> 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
1 голос
/ 27 июля 2010

Чтобы захватить только 10, попробуйте это: (?=\bvspace=")?(\d+)

/vspace="(\d+)" должно соответствовать в целом vspace="10"

0 голосов
/ 27 июля 2010
/vspace="(\d+)"/$1/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...