Рефакторинг проверки регулярных выражений в ruby - PullRequest
0 голосов
/ 05 января 2010

Я думаю, что должен быть более чистый способ проверить, является ли регулярное выражение ноль / верно. Это то, что я использовал: Hold = (h4.text = ~ / Blah /) если! hold.nil? ... конец

Я пытался:! (H4.text = ~ /Blah/).nil? но, похоже, это не сработало.

Ответы [ 4 ]

2 голосов
/ 05 января 2010
if h4.text !~ /Blah/
   # ...
end
2 голосов
/ 05 января 2010

Вы можете использовать unless здесь:

unless h4.text =~ /Blah/
  #...
end
0 голосов
/ 06 января 2010
#!/usr/bin/ruby1.8

text = 'Blah blah blah'
puts "blah" if text =~ /Blah/    # => blah

text = 'Foo bar baz'
puts "blah" if text =~ /Blah/    # (nothing printed)
  • В условном выражении Ruby все, что ни ноль, ни false считается истинным.

  • = ~ возвращает ноль без совпадения или целочисленную позицию символа, если есть совпадает.

  • ноль так же хорошо, как ложь; целое число так хорошо, как правда.

Следовательно, вы можете использовать результат = ~ непосредственно в if, while и т. Д.

0 голосов
/ 05 января 2010

Ничто из вышеперечисленного, похоже, не сработало, вот что я закончил:

unless (h4.text =~ /Blah/) == nil
   ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...