2014-02-09 67 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

您可以使用类似的正则表达式以及多个捕获组来提取那些与您需要的相关的正则表达式。但是为什么在替换方法变得如此简单时,你想要这么做呢?也许这是一项家庭作业? –