java - 由 : java. util.regex.PatternSyntaxException 引起:非法重复

标签 java regex spring-data-neo4j

我正在尝试获取搜索查询并在搜索查询中传递参数(其带有类似运算符的密码查询)并传递动态参数,但我遇到了错误。是正则表达式问题的neo4j问题吗。

    Map<String, Object> map = new HashMap<String, Object>();
            map.put(parameter, groupIdAfterSubstituet(collabVo));//
            map.put("{display_name}",input);//input="S"
    Result<Map<String, Object>> result = neoOperation.query(
                    collabVo.getSearchQuery(), map);//MATCH (n:OrganizationUnit {id:{class}})-[r:PART]-(c)-[r1:STUDENTROLE]-(f) where f.firstName =~"{display_name}.*" RETURN f
            Result<Student> std = result.to(Student.class);
            for (Student st : std) {
                students.add(st);

错误

[STDERR] javax.el.ELException: /sections/content/postAlertContent.xhtml @28,38 completeMethod="#         {autocompleteBeanController.completeUserProfile}": java.util.regex.PatternSyntaxException: Illegal    repetition
[STDERR] {display_name}.*
[STDERR]    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111)
[STDERR]    at   org.primefaces.component.autocomplete.AutoComplete.broadcast(AutoComplete.java:337)
[STDERR]    at javax.faces.component.UIData.broadcast(UIData.java:1093)
[STDERR]    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
[STDERR]    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
[STDERR]    at  com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
[STDERR]    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
[STDERR]    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
[STDERR]    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
[STDERR]    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329) 
[STDERR]    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
[STDERR]    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
[STDERR]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
[STDERR]    at com.ramselabs.education.filter.LoginFilter.doFilter(LoginFilter.java:52)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
[STDERR]    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
[STDERR]    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)
[STDERR]    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
[STDERR]    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
[STDERR]    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
[STDERR]    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
[STDERR]    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
[STDERR]    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
[STDERR]    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
[STDERR]    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
[STDERR]    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
[STDERR]    at org.eclipse.jetty.server.Server.handle(Server.java:363)
[STDERR]    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)  
[STDERR]    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:931)
[STDERR]    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:992)
[STDERR]    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
[STDERR]    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
[STDERR]    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
[STDERR]    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
[STDERR]    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
[STDERR]    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
[STDERR]    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
[STDERR]    at java.lang.Thread.run(Thread.java:745)
[STDERR] Caused by: java.util.regex.PatternSyntaxException: Illegal repetition
[STDERR] {display_name}.*
[STDERR]    at java.util.regex.Pattern.error(Pattern.java:1924)
[STDERR]    at java.util.regex.Pattern.closure(Pattern.java:3104)
[STDERR]    at java.util.regex.Pattern.sequence(Pattern.java:2101)
[STDERR]    at java.util.regex.Pattern.expr(Pattern.java:1964)
[STDERR]    at java.util.regex.Pattern.compile(Pattern.java:1665)
[STDERR]    at java.util.regex.Pattern.<init>(Pattern.java:1337)
[STDERR]    at java.util.regex.Pattern.compile(Pattern.java:1022)
[STDERR]    at scala.util.matching.Regex.<init>(Regex.scala:153)

最佳答案

这不是模式的问题。问题出在我的密码查询中。密码查询应该是这样的:

MATCH (n:OrganizationUnit {id:{class}})-[r:PART]-(c)-[r1:STUDENTROLE]-(f) 
where f.firstName =~{display_name} RETURN f

添加参数应该是这样的:

map.put("display_name", input);  

其中input包含完整模式(例如“nameToMatch.*”)。这应该可行。

关于java - 由 : java. util.regex.PatternSyntaxException 引起:非法重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27254854/

相关文章:

Java 流 : Extend Built-In Collector

java - 使用 Apache Tika 解析 HTML 问题

php - PHP中preg_replace()的字符串的最大长度?

java - SDN : How to map a collection of nodes to a @NodeEntity class member?

java - 如何使嵌套的 JScrollPanes 正常工作?

java - 匹配 '\n' 字符的正则表达式

c# - 使用 RegEx 平衡匹配括号

neo4j - 启动嵌入式 Neo4j HA Slave 时出现索引创建错误

java - 如何将实体映射到现有图形?

java - facebook android sdk shareddialog回调总是成功的