Kennt jemand die Regeln für gültige Ruby-Variablennamen? Kann man sie mit einem RegEx abgleichen?
UPDATE: Das ist alles, was mir bisher eingefallen ist:
^[_a-z][a-zA-Z0-9_]+$
Ist das richtig?
Kennt jemand die Regeln für gültige Ruby-Variablennamen? Kann man sie mit einem RegEx abgleichen?
UPDATE: Das ist alles, was mir bisher eingefallen ist:
^[_a-z][a-zA-Z0-9_]+$
Ist das richtig?
Ich habe versucht, eine Lösung für ein Rails-Patch zu finden, und Matthew Draper schrieb dies unter Verwendung der Rubin-Parser als Referenz:
/\A(?![A-Z0-9])(?:[[:alnum:]_]|[^\0-\177])+\z/
Und hier ist sie, direkt aus dem Mund des Pferdes. (Das Pferd ist in diesem Fall die Entwurf der ISO-Ruby-Spezifikation ):
(
Kleinbuchstaben |
_ )
Bezeichner-Zeichen *
|
Großbuchstaben |
Dezimalziffer |
_|
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z|
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9In Ruby 1.9 können Sie dies mit benannten Gruppen wörtlich übersetzen:
local_variable_identifier = %r{
(?<uppercase_character> A | B | C | D | E | F | G | H | I | J | K | L | M
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z
){0}
(?<lowercase_character> a | b | c | d | e | f | g | h | i | j | k | l | m
| n | o | p | q | r | s | t | u | v | w | x | y | z
){0}
(?<decimal_digit> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9){0}
(?<identifier_character> \g<lowercase_character>
| \g<uppercase_character>
| \g<decimal_digit>
| _
){0}
( \g<lowercase_character> | _ ) \g<identifier_character>*
}x
Natürlich ist das nicht die Art und Weise, wie Sie es wirklich schreiben würden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.