Рубиновое выражение - PullRequest
       6

Рубиновое выражение

1 голос
/ 23 февраля 2009
(?:)

Это правильное регулярное выражение в рубине, может кто-нибудь сказать мне, что это значит?

Спасибо

Ответы [ 3 ]

9 голосов
/ 23 февраля 2009

Как уже говорили другие, он используется как синтаксис без захвата для регулярного выражения, но также является допустимым синтаксисом ruby ​​вне регулярного выражения.

В рубине ?: - целочисленное значение для символа двоеточия:

% irb
irb> ?:
=> 58
irb ":"[0]
=> 58

Добавление круглых скобок не меняет значение: (?:) == ?:

Когда вы добавляете пробелы (? :), это троичный оператор, который по сути является сокращением для if / then / else в ruby, поэтому выражение ( bool ? truish : falsy ) эквивалентно

if bool then 
  truish 
else 
  falsy 
end
3 голосов
/ 23 февраля 2009

Он не будет захватывать часть совпадающей строки в обратной ссылке (т.е. \ 1).

2 голосов
/ 23 февраля 2009

Это пустая, группа без захвата . В этом случае оно не имеет смысла и может быть отброшено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...