(?:)
C'est une expression régulière ruby valide, quelqu'un pourrait-il me dire ce que cela signifie?Expression Ruby
Merci
(?:)
C'est une expression régulière ruby valide, quelqu'un pourrait-il me dire ce que cela signifie?Expression Ruby
Merci
Il ne saisira pas la partie de la chaîne correspondante dans un backreference (i.e. \ 1).
Ceci est un vide, non-capturing group. Cela n'a aucun sens dans ce cas et peut être abandonné.
Comme d'autres l'ont dit, il est utilisé comme syntaxe de non-capture pour une regex, mais c'est aussi une syntaxe ruby valide en dehors d'une regex.
En ruby ?:
est la valeur entière pour le caractère deux-points:
% irb
irb> ?:
=> 58
irb ":"[0]
=> 58
Ajout entre parenthèses ne change pas la valeur: (?:) == ?:
Lorsque vous ajoutez des espaces (? :
), il est l'opérateur ternaire, qui est essentiellement raccourci pour if/then/else en ruby, donc l'instruction (bool ? truish : falsy)
est équivalente à
if bool then
truish
else
falsy
end
?: Évalue à '?' dans Ruby 1.9. – Chuck
@ gpojd, Comment devrais-je comprendre le '?' et ici? – eric2323223
Par exemple, (\ d +) capturera des chiffres consécutifs dans une référence arrière comme \ 1. Si vous voulez grouper une partie de l'expression régulière, mais que vous ne voulez pas les capturer, vous utiliserez (?: \ D +). La capture inutile des données peut diminuer les performances. – gpojd