(?:)
Это действительное рубиновое регулярное выражение, может ли кто-нибудь сказать мне, что это значит?Ruby выражение
Благодаря
(?:)
Это действительное рубиновое регулярное выражение, может ли кто-нибудь сказать мне, что это значит?Ruby выражение
Благодаря
Он не будет захватывать часть строки соответствия в backreference (т.е. \ 1).
Это пустой, non-capturing group. В этом случае он не имеет смысла и может быть отброшен.
Как и другие пользователи, он используется как не захватывающий синтаксис для регулярного выражения, но он также является действительным синтаксисом ruby вне регулярного выражения.
В рубине ?:
целое значение для символа двоеточия:
% irb
irb> ?:
=> 58
irb ":"[0]
=> 58
Добавление скобки не меняет значение: (?:) == ?:
При добавлении пространства (? :
), это тройной оператор, который является, по существу, сокращенным, если/then/else в рубине, поэтому заявление (bool ? truish : falsy)
эквивалентно
if bool then
truish
else
falsy
end
?: Оценивается как?? в Ruby 1.9. – Chuck
@gpojd, Как я должен понимать '?' и здесь? – eric2323223
Например, (\ d +) будет записывать последовательные цифры в обратном направлении, например \ 1. Если вы хотите сгруппировать часть регулярного выражения, но не хотите их записывать, вы должны использовать (?: \ D +). Неправильное захват данных может снизить производительность. – gpojd