Où puis-je trouver la documentation sur les modificateurs de Spécialement, je regarde ce code ... gsub code>? \ A \ b \ c \ 1 \ 2 \ 3% A% B% 1 $ C $ 1 2% 3, etc.? P>
quelque chose.gsub (/% u /, unité) code> Quel est le % u p> p>
5 Réponses :
ZensPider's QuickRef contient une section expliquant Quelles séquences d'échappement peuvent être utilisées dans Regexen a> et une liste des pseudo variables qui sont définies par un match Regexp . Dans le deuxième argument de GSUB, vous écrivez simplement le nom de la variable avec une barre oblique inverse au lieu d'un $ et il sera remplacé par la valeur de cette variable après avoir appliqué le Regexp. Si vous utilisez une chaîne cotée double, vous devez utiliser deux backslashes. P>
Lorsque vous utilisez la forme de bloc de GSUB, vous pouvez simplement utiliser les variables directement. Si vous retournez une chaîne contenant par ex. \ 1 du bloc, qui ne sera pas remplacé par 1 $. Cela ne se produit que lorsque vous utilisez la forme à deux arguments. P>
Je regarde ce code ... .gsub (/% u /, unité) Quel est le% U? Je ne peux pas sembler trouver% u dans votre docs et l'explication du% n'est pas claire pour moi. Merci!
Le% U est un signe pour cent suivi de la lettre u. Il n'a aucune signification particulière dans Regexen, alors je suppose que le texte contient littéralement cette séquence.
Tout d'abord, Les cordes délimitées par des barres obliques sont
expressions régulières. Les personnages
juste après ce dernier slash dénote le
option à l'expression régulière.
OPTION I signifie que l'expression régulière
est insensible à la casse. OPTION I signifie
Cette expression régulière fait
Substitution d'expression une seule fois à
la première fois qu'il a évalué. Option x
signifie expression régulière étendue,
ce qui signifie blouses et commencent
sont autorisés dans l'expression. Option p
désigne le mode POSIX, dans lequel les nouvelles lignes
sont traités comme un caractère normal
(matchs avec points). P>
Le% R / String / est l'autre forme de
l'expression régulière. p>
% u code> n'est rien spécial dans Ruby Regex: ^
beginning of a line or string
$
end of a line or string
.
any character except newline
\w
word character[0-9A-Za-z_]
\W
non-word character
\s
whitespace character[ \t\n\r\f]
\S
non-whitespace character
\d
digit, same as[0-9]
\D
non-digit
\A
beginning of a string
\Z
end of a string, or before newline at the end
\z
end of a string
\b
word boundary(outside[]only)
\B
non-word boundary
\b
backspace(0x08)(inside[]only)
[ ]
any single character of set
*
0 or more previous regular expression
*?
0 or more previous regular expression(non greedy)
+
1 or more previous regular expression
+?
1 or more previous regular expression(non greedy)
{m,n}
at least m but most n previous regular expression
{m,n}?
at least m but most n previous regular expression(non greedy)
?
0 or 1 previous regular expression
|
alternation
( )
grouping regular expressions
(?# )
comment
(?: )
grouping without backreferences
(?= )
zero-width positive look-ahead assertion
(?! )
zero-width negative look-ahead assertion
(?ix-ix)
turns on (or off) `i' and `x' options within regular expression.
mixonic@pandora ~ $ irb
irb(main):001:0> '%u'.gsub(/%u/,'heyhey')
=> "heyhey"
Je regarde ce code ... .gsub (/% u /, unité) Quel est le% U? Je ne peux pas sembler trouver% u dans votre docs et l'explication du% n'est pas claire pour moi. Merci!
% U n'est rien de spécial - essayez le code dans irb: '% u'.gsub (/% u /,' heyhey ') # => "heyhey". GSUB recherche une chaîne '% U' et le remplaçant avec le deuxième argument, «Heyhey» dans cet exemple.
Si vous utilisez un bloc dans SUB / GSUB, vous pouvez accéder aux groupes comme celui-ci:
>> rx = /(ab(cd)ef)/
>> s = "-abcdef-abcdef"
>> s.gsub(rx) { $2 }
=> "cdgh-cdghi"
gsub strong> est également une fonction de substitution de chaîne dans la langue de LUA. P>
Dans le LUA regex strong> langue% u représente la classe de caractères majuscules. à-dire qu'elle correspondra à toutes les lettres majuscules. De même% correspondra à l minuscule. P>