2016-07-14 11 views
-3

Ich speichere einen hässlichen Wert in einem Feld innerhalb einer Tabelle.Javascript Regelmäßiger Ausdruck Hilfe benötigt Beispiel Text und Ziel angegeben

Zeichenfolge1: s: 90: "a: 2: {s: 8:" latitude "; s: 18:" 37,453896007474455 "; s: 9:" geographische Länge "; s: 19:" - 122,28786132646483" ; } ";

string2: s: 90: "a: 2: {s: 8:" Breitengrad "; s: 18:" 1.03923923929 "; s: 9:" Längengrad "; s: 19:" - 10.28786132646483 "; } ";

string3: s: 90: "a: 2: {s: 8:" Breite "; s: 18:" 3,455 "; s: 9:" Länge "; s: 19:" - 140,28786132646483 "; } ";

Was regex würden alle 37,453896007474455, 1,03923923929 entsprechen, 3,455

Was regex alle -122,28786132646483 entsprechen würde, -10,28786132646483, -140,28786132646483

Danke

In jedem Fall ein Minuszeichen kann vor den Ziffern vor dem Punkt erscheinen.

+0

Woher kommen die Daten? Gibt es eine Chance, dass Sie stattdessen einen JSON erhalten oder eine Parser-Bibliothek anbieten? –

Antwort

0

Sie könnten (-?\d+(?:.\d+)?) verwenden ein optionales Minus (-?) zu entsprechen, gefolgt von mindestens einer Zahl \d+, gefolgt (?:\.\d+)?, die eine optionale ? nicht Erfassungsgruppe ?: für eine Dezimalzahl \. erzeugt, gefolgt von mindestens einer Zahl \d+.

die string Unter der Annahme, beginnt immer mit s:90:"a:2:{s:8:"latitude";s:18:", den ersten Satz von Zahlen zu erhalten, die Sie verwenden können:

s:90:"a:2:{s:8:"latitude";s:18:"(-?\d+(?:\.\d+)?)" 

den ersten Satz von Zahlen Angenommen wird immer gefolgt von ";s:9:"longitude";s:19:", den zweiten Satz von Zahlen zu erhalten , könnten Sie verwenden:

";s:9:"longitude";s:19:"(-?\d+(?:\.\d+)?)"