Ich versuche Floating-Point-Dezimalzahlen mit einem regulären Ausdruck zu vergleichen. Es kann eine Zahl vor dem Dezimaltrennzeichen geben oder auch nicht, und das Dezimaltrennzeichen kann vorhanden sein oder nicht, und wenn es vorhanden ist, kann es Ziffern haben oder nicht. (Für diese Anwendung ist ein vorangestelltes +/- oder ein nacheilendes "E123" nicht zulässig).Wie kann ich überprüfen, ob mindestens einer von zwei Unterausdrücken in einem regulären Ausdruck übereinstimmt?
/^([\d]*)(\.([\d]*))?$/
Welche richtig die folgenden Spiele:: Ich habe diese regex geschrieben
1
1.
1.23
.23
Dies ist jedoch auch Spiele leere Zeichenfolge oder eine Zeichenfolge von nur einem Komma, das will ich nicht.
Derzeit überprüfe ich nach dem Ausführen der Regex, dass $ 1 oder $ 3 Länge größer als 0 hat. Wenn nicht, ist es nicht gültig. Gibt es einen Weg, wie ich das direkt in der Regex machen kann?
ich eigentlich tun Es ist in Java, aber ich poste es hier, als wäre es Perl, weil Java Regex-Engine ist ist eine Beleidigung der menschlichen Anständigkeit. – Kip