2016-04-11 14 views
1

Ich frage mich, wie man zwei Zahlen mit regulärem Ausdruck in Clojure vergleicht. Zum Beispiel möchte ich alle Zahlen finden, die größer als 500 aus einem Satz sind. Mein Code ist:Wie man Zahlen mit regulärem Ausdruck in clojure vergleicht

user=> (re-matches #"(>? 500)" "the numbers are 300,400,500,600,900") 
nil 

Ich vermutete den regulären Ausdruck, also denke ich, dass es nicht korrekt ist. Ich möchte, dass die Ergebnisse 600 und 900 sind. Wie kann ich das beheben?

Antwort

4

Just for fun

(?!500)[56789]\d{2,}|\d{4,} 

Regex Demo

Eingang:

the numbers are 300,400,500,600,900 

Spiele:

600 
900 

Erklärung:

[56789]\d{2,} Streichhölzer 500-999
(?!500) Negative Look-Ahead-sample außer 500
(?!500)[56789]\d{2,} Streichhölzer 501-999 (außer 500)
\d{4,} Matches> = 1000
| Makeln/OR Operand sample

+0

Es funktioniert ! Ich danke dir sehr! Ich kann jedoch nicht verstehen, warum Sie '\ d {2,} | \ d {4,}' setzen. Kannst du es im Detail erklären? Ich würde das zu schätzen wissen! –

Verwandte Themen