正则表达式提取字符串

叮叮af

我想提取[{“ type”:“ MAPPINGTYPE”,“ target”:1,“ source”:0},{“ type”:“ OWNEDOBJECTS”,“ target”:3,“ source”:0},{以下字符串中的“ type”:“ APIFILES”,“ target”:2,“ source”:1}]]

String json="links":[{"type":"MAPPINGTYPE","target":1,"source":0},{"type":"OWNEDOBJECTS","target":3,"source":0},{"type":"APIFILES","target":2,"source":1}],

即时通讯使用以下代码没有结果:

Pattern pattern = Pattern.compile("[(.*?)]");
Matcher matcher = pattern.matcher(json);
if (matcher.find())
{
   System.out.println(matcher.group(0));
}

原始的问题如下:我有一个被文件弄乱的JSONfile:

{
    "links":[{"type":"MAPPINGTYPE","target":1,"source":0},{"type":"OWNEDOBJECTS","target":3,"source":0},{"type":"APIFILES","target":2,"source":1}],
    "nodes":[{"label":["ClassDefinition","_ClassDefinition","_AbstractEntity"],"name":"HexStringParser"}],
    "links":[{"type":"MAPPINGTYPE","target":1,"source":0},{"type":"OWNEDOBJECTS","target":3,"source":0},{"type":"APIFILES","target":2,"source":1}],
    "nodes":[{"label":["ClassDefinition","_ClassDefinition","_AbstractEntity"],"name":"HexStringParser"}]
}

如您所见,我想对链接和节点进行重复处理,我希望将它们合并(而不是删除重复项)以具有这样的JSON:

{
    "links":[{"type":"MAPPINGTYPE","target":1,"source":0},{"type":"OWNEDOBJECTS","target":3,"source":0},{"type":"APIFILES","target":2,"source":1},{"type":"MAPPINGTYPE","target":1,"source":0},{"type":"OWNEDOBJECTS","target":3,"source":0},{"type":"APIFILES","target":2,"source":1}],
    "nodes":[{"label":["ClassDefinition","_ClassDefinition","_AbstractEntity"],"name":"HexStringParser"},{"label":["ClassDefinition","_ClassDefinition","_AbstractEntity"],"name":"HexStringParser"}],
}

我已经尝试过json解析器

Map<String,String[]> map = new HashMap<String,String[]>();
ObjectMapper mapper = new ObjectMapper();
try {
    //convert JSON string to Map
    map = mapper.readValue(json, 
    new TypeReference<HashMap<String,String[]>>(){});
    System.out.println(map);

    } catch (Exception e) {
          e.printStackTrace();
    }

但是我得到了这个堆栈跟踪:

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String[] out of VALUE_STRING token
 at [Source: java.io.StringReader@3d0b8bc1; line: 1, column: 219]
    at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
    at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:219)
    at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:212)
    at org.codehaus.jackson.map.deser.std.PrimitiveArrayDeserializers$StringDeser.handleNonArray(PrimitiveArrayDeserializers.java:153)
    at org.codehaus.jackson.map.deser.std.PrimitiveArrayDeserializers$StringDeser.deserialize(PrimitiveArrayDeserializers.java:119)
    at org.codehaus.jackson.map.deser.std.PrimitiveArrayDeserializers$StringDeser.deserialize(PrimitiveArrayDeserializers.java:107)
    at org.codehaus.jackson.map.deser.std.MapDeserializer._readAndBind(MapDeserializer.java:319)
    at org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:249)
    at org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:33)
    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1870)
    at com.MyAppConverter.MapTool.HomeController.checkMapping(HomeController.java:174)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:146)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:279)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
凯西尔·伊凡(Kysil Ivan)

使用模式:“ \\ [。* \\]”

例子:

    Pattern pattern = Pattern.compile("\\[.*\\]");
    Matcher matcher = pattern.matcher(json);
    if (matcher.find())
    {
        System.out.println(matcher.group());
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式提取字符串

来自分类Dev

正则表达式提取字符串

来自分类Dev

提取字符串正则表达式

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

在python正则表达式中提取字符串的子字符串

来自分类Dev

在字符串正则表达式busybox之间提取字符串

来自分类Dev

PHP /正则表达式:从字符串中提取字符串

来自分类Dev

正则表达式:从字符串中提取字符串

来自分类Dev

使用正则表达式从字符串中的提取字符串

来自分类Dev

通过正则表达式提取字符串之间的特定字符串

来自分类Dev

从字符串中提取字符(正则表达式)

来自分类Dev

从仅与正则表达式模式匹配的字符串中提取字符

来自分类Dev

正则表达式提取字符串,直到在javascript中出现特殊字符

来自分类Dev

scala.MatchError:使用正则表达式提取字符串

来自分类Dev

正则表达式以一致的顺序提取字符串的不同部分

来自分类Dev

使用正则表达式提取字符串

来自分类Dev

外壳脚本。如何使用正则表达式提取字符串

来自分类Dev

使用正则表达式提取字符串

来自分类Dev

正则表达式,提取字符串不在两个括号之间

来自分类Dev

正则表达式仅提取字符串之后和空格之前的文本

来自分类Dev

正则表达式提取字符串中的特定元素

来自分类Dev

使用正则表达式提取字符串部分

来自分类Dev

Python使用正则表达式提取字符串的出现

来自分类Dev

在终端上以正则表达式分组提取字符串

来自分类Dev

使用正则表达式提取字符串中的数字

来自分类Dev

在正则表达式中提取字符串

来自分类Dev

在间隔上使用正则表达式提取字符串html

来自分类Dev

如何在正则表达式中提取字符串

来自分类Dev

如何使用正则表达式从列表中提取字符串匹配项?

Related 相关文章

  1. 1

    正则表达式提取字符串

  2. 2

    正则表达式提取字符串

  3. 3

    提取字符串正则表达式

  4. 4

    正则表达式:从字符串中提取字符串

  5. 5

    在python正则表达式中提取字符串的子字符串

  6. 6

    在字符串正则表达式busybox之间提取字符串

  7. 7

    PHP /正则表达式:从字符串中提取字符串

  8. 8

    正则表达式:从字符串中提取字符串

  9. 9

    使用正则表达式从字符串中的提取字符串

  10. 10

    通过正则表达式提取字符串之间的特定字符串

  11. 11

    从字符串中提取字符(正则表达式)

  12. 12

    从仅与正则表达式模式匹配的字符串中提取字符

  13. 13

    正则表达式提取字符串,直到在javascript中出现特殊字符

  14. 14

    scala.MatchError:使用正则表达式提取字符串

  15. 15

    正则表达式以一致的顺序提取字符串的不同部分

  16. 16

    使用正则表达式提取字符串

  17. 17

    外壳脚本。如何使用正则表达式提取字符串

  18. 18

    使用正则表达式提取字符串

  19. 19

    正则表达式,提取字符串不在两个括号之间

  20. 20

    正则表达式仅提取字符串之后和空格之前的文本

  21. 21

    正则表达式提取字符串中的特定元素

  22. 22

    使用正则表达式提取字符串部分

  23. 23

    Python使用正则表达式提取字符串的出现

  24. 24

    在终端上以正则表达式分组提取字符串

  25. 25

    使用正则表达式提取字符串中的数字

  26. 26

    在正则表达式中提取字符串

  27. 27

    在间隔上使用正则表达式提取字符串html

  28. 28

    如何在正则表达式中提取字符串

  29. 29

    如何使用正则表达式从列表中提取字符串匹配项?

热门标签

归档