Wie gebe ich einen booleschen Wert aus einer Regex zurück?

7

Ich kann nicht richtig herausfinden, was ich hier falsch mache.

%Vor%

Aber es scheint, dass @calc.docket_num eine beliebige Zeichenkette sein kann und immer als true zurückgibt.

Mache ich das nicht richtig?

    
Trip 01.02.2011, 02:55
quelle

3 Antworten

32

Dies ist ein One-Liner:

%Vor%

Die !! erzwingt die Antwort auf wahr / falsch, dann können Sie Ihre boolesche Variable direkt zuweisen.

    
Mark Thomas 01.02.2011, 04:00
quelle
4

Alternativ können Sie den Operator triple equals ( === ) für die Klasse Regexp verwenden, die zur Bestimmung der Gleichheit verwendet wird, wenn case syntax verwendet wird.

%Vor%

ACHTUNG

/Regexp/ === String ist total anders als String === /Regexp/ !!!! Die Methode ist nicht kommutativ. Jede Klasse implementiert === anders. Für die obige Frage muss der reguläre Ausdruck links von === stehen.

Für die Regexp-Implementierung sehen Sie weitere Dokumentation dazu (ab Ruby 2.2.1) hier .

    
Curley 14.04.2015 14:31
quelle
2

Ich denke, das Problem liegt woanders in Ihrer Implementierung. Verwenden Sie diesen Code, um es zu überprüfen:

%Vor%     
Pan Thomakos 01.02.2011 03:01
quelle

Tags und Links