Ich muss überprüfen, ob eine Zeichenfolge enthält mindestens eine Zahl mit Ruby (und ich nehme eine Art von Regex?).Wie überprüfe ich, ob eine Zeichenfolge mindestens eine Zahl enthält, die Ruby verwendet?
Wie würde ich das tun?
Ich muss überprüfen, ob eine Zeichenfolge enthält mindestens eine Zahl mit Ruby (und ich nehme eine Art von Regex?).Wie überprüfe ich, ob eine Zeichenfolge mindestens eine Zahl enthält, die Ruby verwendet?
Wie würde ich das tun?
Sie können die =~
Methode der String
Klasse mit den regex /\d/
als Argument.
Hier ist ein Beispiel:
s = 'abc123'
if s =~ /\d/ # Calling String's =~ method.
puts "The String #{s} has a number in it."
else
puts "The String #{s} does not have a number in it."
end
if /\d/.match(theStringImChecking) then
#yep, there's a number in the string
end
Alternativ ohne eine regex:
def has_digits?(str)
str.count("0-9") > 0
end
das ist wahrscheinlich weniger effizient, wenn Sie den Overhead des Kompilierens des regulären Ausdrucks ignorieren (was fair ist, wenn der Test in einer großen Schleife durchgeführt wird oder die zu überprüfende Zeichenfolge sehr lang ist). Für einen degenerativen Fall muss Ihre Lösung die gesamte Zeichenfolge durchlaufen, während ein ordnungsgemäßer regulärer Ausdruck stoppt, sobald eine Ziffer gefunden wird. –
während dieser nicht maximal effizient sein kann, ist es sehr gut lesbar, was für bestimmte Situationen besser sein kann. –
Anstatt verwenden so etwas wie "s = ~/\ d /", gehe ich für die kürzeren s [/ \ d /], die für einen Fehltreffer nil (AKA false in einem konditionellen Test) oder den Index des Treffers (AKA true in einem konditionellen Test) zurückgibt. Wenn Sie den tatsächlichen Wert benötigen, verwenden Sie s [/ (\ d) /, 1]
Es sollte alles gleich funktionieren und ist weitgehend eine Wahl des Programmierers.
!s[/\d/].nil?
Kann eine eigenständige Funktion sein -
def has_digits?(s)
return !s[/\d/].nil?
end
oder ... es in die String-Klasse Zugabe macht es noch bequemer -
class String
def has_digits?
return !self[/\d/].nil?
end
end
http: //public.kvalley. com/regex/regex.asp –