如何使用正则表达式提取大块

时间:2014-02-09 17:48:46

标签: regex

我有一个输入json:

{ “ID”:12345 “MGRS”: “04QFJ1234567890”, “代码”: “12345”, “用户”: “db3e1a-3c88-4141-bed3-206a”}

我想用正常表达式提取1000公里的MGRS,在我的例子中结果应该是:04QFJ1267

前2个符号总是数字,接下来3个总是字符,其余的总是数字。 MGRS的固定长度为15个字符。

有可能吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您真正需要做的就是删除字符8-10和13-15。如果你想/需要使用正则表达式,那么你可以使用regex替换方法:( 编辑编辑删除字符串的其余部分)。

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

和替换字符串:

$1$2

我现在看到你正在使用Java。因此相关的代码行可能如下所示:

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

以上假设您的所有字符串看起来都像您所显示的那样,并且无需进行测试以确保字符串中存在“mgrs”。