2016-07-14 22 views
-3

我在一個表內的字段中存儲一個醜陋的值。Javascript正則表達式幫助需要的示例文本和目標陳述

字符串1: S:90: 「A:2:{S:8:」 緯度 「S:18:」 37.453896007474455 「; S:9:」 經度 「; S:19:」 - 122.28786132646483" ; }「;

string2: s:90:「a:2:{s:8:」latitude「; s:18:」1.03923923929「; s:9:」longitude「; s:19:」 - 10.28786132646483「; }「;

string3: s:90:「a:2:{s:8:」latitude「; s:18:」3.455「; s:9:」longitude「; s:19:」 - 140.28786132646483「; }「;

什麼正則表達式會匹配所有的37.453896007474455,1.03923923929,3.455

什麼正則表達式會匹配所有的-122.28786132646483,-10.28786132646483,-140.28786132646483

謝謝

在這兩種情況下,減號可能會出現在該時間段之前的數字之前。

+0

數據來自哪裏?任何機會你可以得到一個JSON,或者他們提供一個解析器庫? –

回答

0

你可以使用(-?\d+(?:.\d+)?)匹配可選的負(-?),隨後通過至少一個數\d+,隨後(?:\.\d+)?,這對於一個小數\.創建一個可選?非捕獲組?:,隨後在至少一個數\d+

假設string總是s:90:"a:2:{s:8:"latitude";s:18:"開始,以獲得第一組數字,你可以使用:

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

假設第一組數字的後面總是跟着";s:9:"longitude";s:19:",以獲得第二組數字,您可以使用:

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