Regulärer Ausdruck zum extrahieren von zahlen aus einem string
Kann mir jemand helfen konstruieren, die dieser reguläre Ausdruck bitte...
Angesichts der folgenden strings...
- "April ( 123 widgets weniger 456 Ritzel )"
- "Kann (789 widgets weniger 012-Ritzel)"
Ich brauche einen regulären Ausdruck, extrahiert die zwei zahlen aus dem text. Der name des Monats wird variieren. Die Klammern, "widgets weniger" und "Ritzel" text ist nicht zu erwarten, dass Wechsel zwischen den Streichern, jedoch wäre es wirklich hilfreich, wenn dieser text war in der Lage zu variieren, wie gut.
Vielen Dank im Voraus.
InformationsquelleAutor Martin Robins | 2010-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie wissen, für sicher, dass es nur 2 Orte, wo Sie haben eine Liste der stellen in der Zeichenfolge, und das ist die einzige Sache, die Sie gehen zu ziehen, dann sollten Sie in der Lage, verwenden Sie einfach
Zum Beispiel in ruby wäre es
matches = string.scan(/\d+/)
Meine Entschuldigung, ich bin mit dem .NET-Implementierung.
Das klappt nicht bei negativen zahlen... Regex aktualisiert werden muss.
InformationsquelleAutor Seattle Leonard
funktionieren sollte. Nach dem match Rückverweis 1 enthält den Monat, Rückverweis 2 enthalten die in der ersten Reihe und Rückverweis 3 die zweite Zahl.
Erklärung:
Gute Erklärung der Lösung
InformationsquelleAutor Tim Pietzcker
könnten Sie so etwas wie:
[^0-9]+([0-9]+)[^0-9]+([0-9]+).+
Dann bekommen der erste und zweite erfasste Gruppen.
InformationsquelleAutor FrustratedWithFormsDesigner