Ruby Regexp hat einige Optionen (z. B. i
, x
, m
, o
). i
bedeutet zum Beispiel ignorieren Fall.Was bedeutet der o-Modifikator für eine Regexp?
Was bedeutet die Option o
? In ri Regexp
heißt es o
bedeutet #{}
Interpolation nur einmal durchzuführen. Aber wenn ich dies tun:
a = 'one'
b = /#{a}/
a = 'two'
b
ändert sich nicht (es bleibt /one/
). Was vermisse ich?
Sie verwenden nicht das 'o'-Flag in Ihrer Regexp. Warum erwartest du irgendeinen Effekt davon? – sawa
Nun, wenn 'o' Flag zu verwenden bedeutet, den Effekt einzuschalten, dann kann ich das '# {}' in einem Regexp jedes Mal ohne das Flag ausführen –
Vorsicht, dass in der Perl (im Gegensatz zu Ruby) docs http: // perldoc.perl.org/perlre.html es wird vom "o" -Modifikator angegeben: "tue so, als ob du deinen Code optimierst, aber führe Bugs ein". In Perl scheint die "o" -Flagge eine andere Bedeutung zu haben als die von Ruby, und außerdem kann die Perl-Flagge gebrochen sein. – Rhubbarb