2014-02-09 133 views
0

我有一個輸入JSON提取大MGRS:如何使用正則表達式

{ 「ID」:12345, 「MGRS」: 「04QFJ1234567890」, 「代碼」: 「12345」, 「用戶」:「db3e1a- 3c88-4141-bed3-206a「}

我想用1000公里的正則表達式MGRS提取,在我的例子的結果應該是:04QFJ1267

首先2個符號總是位,接下來的3個字符總是和休息總是數字。 MGRS的固定長度爲15個字符。

可能嗎?

謝謝。

+0

你在用什麼語言? 「1000公里」與它有什麼關係? – ooga

+0

輸入如何指定mgrs爲1000公里? –

+0

我正在使用Java。 –

回答

1

你真正需要做的是刪除字符8-10和13-15。如果你想/需要做的使用正則表達式,那麼你可以使用替換法用正則表達式:(編輯編輯,以去除串的其餘部分)。

.*?(\w{7})\d{3}(\d{2})\d+.* 

和替換字符串:

$1$2 

我看你現在使用的是Java。所以相關的代碼行可能看起來像:以上

resultString = subjectString.replaceAll(".*?(\\w{7})\\d{3}(\\d{2})\\d+.*", "$1$2"); 

假定您的所有字符串看起來像你表現出什麼,也沒有必要進行測試,以確保「MGRS」是的字符串中。

+0

感謝您的回答。如何在不使用正則表達式替換操作的情況下在一行中執行MGRS 1000公里提取? –

+0

您可以使用類似的正則表達式以及多個捕獲組來提取那些與您需要的相關的正則表達式。但是爲什麼在替換方法變得如此簡單時,你想要這麼做呢?也許這是一項家庭作業? –