首页 新闻 会员 周边

java正则匹配字符串

0
悬赏园豆:15 [已解决问题] 解决于 2018-04-18 17:10

字符串为: { "_id" : { "$oid" : "5a29fcf8e1382306c7e675b1" }

想要匹配的部分:  _id" : { "$oid

本来以为就是一个简单的字符串匹配,我就用replaceAll("_id\" : \{ \"$oid","id");

打算这样匹配的替换的,谁知道一致匹配不到。请问要匹配的话,应该怎么写这个正则表达式。

如果是利用找到索引再截取的话就不用讲了,只想知道正则怎么写!!!

谢谢!

JRay的主页 JRay | 初学一级 | 园豆:74
提问于:2017-12-16 08:59
< >
分享
最佳答案
0

楼主是想把json对象字符串作

{ "_id" : { "$oid" : "5a29fcf8e1382306c7e675b1" }}
-->
{ "id" : "5a29fcf8e1382306c7e675b1" }

如下处理吗?

 

 

 

收获园豆:10
David5201 | 小虾三级 |园豆:534 | 2017-12-16 11:28

如果是这样的话,我建议用json解析,再组包的办法 。json打组包的工具比较多。像开源jackson、谷歌Gson、阿里的FastJson.Gson等等。针对楼主的问题,我简单写了一个测试实现。随便写的,用的谷歌的Gson.

David5201 | 园豆:534 (小虾三级) | 2017-12-16 11:31
 1 public class TestMain {
 2 
 3     public static void main(String[] args) {
 4         String str ="{ \"_id\" : { \"$oid\" : \"5a29fcf8e1382306c7e675b1\" }}";
 5         JsonParser parse =new JsonParser();  //创建json解析器
 6         
 7         JsonObject json=(JsonObject)parse.parse(str); //创建jsonObject对象
 8         JsonObject jso_id= json.get("_id").getAsJsonObject(); //得到_id
 9         String objstr = jso_id.get("$oid").getAsString();    //得到$oid
10         System.out.println(objstr);
11         
12         
13         JsonObject jo = new JsonObject();
14         jo.add("id", jso_id.get("$oid"));
15         System.out.println(jo.toString());    
16     }

以下是maven的引用包:

1 <dependency>
2         <groupId>com.google.code.gson</groupId>
3         <artifactId>gson</artifactId>
4         <version>2.8.2</version>
5 </dependency>
David5201 | 园豆:534 (小虾三级) | 2017-12-16 11:34

恩呢 是这样子。

JRay | 园豆:74 (初学一级) | 2017-12-16 12:36
其他回答(1)
0
public static void main(String[] args)
    {
        String aString = "{\"_id\":{\"$oid\":\"5a29fcf8e1382306c7e675b1\"}";
        System.out.println(aString.replaceAll("\\{\"_id\"\\:\\{\"\\$oid", "id"));
    }

你自己试下,许多字符串中特殊字符的转义,以及正则表达式的特殊字符转义

收获园豆:5
曾有满腹理想的阿飞 | 园豆:424 (菜鸟二级) | 2017-12-16 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册