Angenommen, ich habe einen Datumsbereich in einem Format wie 1390573112to1490573112
, wo die Zahlen sind Epoche Unix Zeit. Gibt es eine Möglichkeit, Regex zu verwenden, um zu bestätigen, dass die zweite Zahl größer als die erste ist?Regex passend für den Datumsbereich
Antwort
Edit: Ich habe gerade festgestellt, dass Sie Ihre Sprache der Wahl nie als JavaScript angegeben haben. Haben Sie eine bestimmte Sprache, die Sie verwenden? Wie schon erwähnt, ist es kein Reflex, der das alleine lösen wird.
Nicht allein regex, aber man kann es verwenden, um die Zahlen zu erhalten und sie dann so etwas vergleichen:
// Method to compare integers.
var compareIntegers = function(a, b) {
/* Returns:
1 when b > a
0 when b === a
-1 when b < a
*/
return (a === b) ? 0 : (b > a) ? 1 : -1;
};
// Method to compare timestamps from string in format "{timestamp1}to{timestamp2}"
var compareTimestampRange = function(str) {
// Get timestamp values from string using regex
// Drop the first value because it contains the whole matched string
var timestamps = str.match(/(\d+)to(\d+)/).slice(1);
/* Returns:
1 when timestamp2 > timestamp1
0 when timestamp2 === timestamp1
-1 when timestamp2 < timestamp1
*/
return compareIntegers.apply(null, timestamps);
}
// Test!
console.log(compareTimestampRange('123to456')); // 1
console.log(compareTimestampRange('543to210')); // -1
console.log(compareTimestampRange('123to123')); // 0
console.log(compareTimestampRange('1390573112to1490573112')); // 1
Natürlich brauchen Sie nicht einmal regex, wenn Ihr Anwendungsfall ist so einfach.
var timestamps = str.match(/(\d+)to(\d+)/).slice(1);
Mit dieser: Man könnte diese Zeile ersetzen
var timestamps = str.split('to');
das gleiche Ergebnis zu erzielen
Danke, das beantwortete meine Frage, ich fragte mich, ob es mit Regex allein möglich war, und wenn nicht, welcher Ansatz sollte genommen werden. –
- 1. Regex für nginx Route passend
- 2. Regex, ohne den zweiten Fall passend
- 3. Python Regex Muster passend
- 4. Passend zu Regex
- 5. regex exakt passend
- 6. Powershell - Regex Datumsbereich ersetzen
- 7. Terminal Bash - regex nicht passend
- 8. Java vs javascript regex passend
- 9. Perl regex nicht gierig passend
- 10. passend zu den nächsten Strings zu einem Suchbegriff (perl regex)
- 11. Python Regex passend für Präposition - Word Boundary Ausgabe
- 12. Perl: Regex nur einige Male passend
- 13. Rails Routen Einschränkung - Unicode-regex nicht passend
- 14. python regex - passend Schwanz Teilzeichenfolge Spiel
- 15. Javascript Regex passend zu allen US-Datumsformaten
- 16. Regex passend durch Skalare in Perl
- 17. Regex passend für vollständigen Ausdruck, der mehrere, ähnliche Begriffe enthält
- 18. Regex für mehr Vorwärts passend in URL schlitzt
- 19. Optimieren Regex passend für lange Liste von Ausdrücken
- 20. C# Regex passend JSON API Antwort richtig
- 21. Datumseinstelldatum für den Datumsbereich auf leer setzen
- 22. SQL: Berechne den Median für jeden Datumsbereich
- 23. Regex passend zu allen, aber nicht leer
- 24. Regex nicht richtig in C# passend
- 25. an Zeile in Vim passend Regex
- 26. Spezifische Muster in Regex passend in Javascript
- 27. Youtube Links nicht regex passend richtig
- 28. Regex für den Dateinamen
- 29. scala optional Zeichensatz passend
- 30. SQL Query für den Datumsbereich für einzelne Datumswerte
Sie müssen eine Sprache verwenden, die entweder hat lexikalische Art oder Umwandlung von einem String in einem int . Nicht Regex allein. – dawg