小编dpk*_*kcv的帖子

Java正则表达式优化提示

我是Java正则表达式的新手.我们使用模式匹配字符串.我们使用它来验证文本字段,它符合我们的要求.但是匹配中存在性能问题.

图案: ([a-zA-Z0-9]+[ ]?(([_\-][a-zA-Z0-9 ])*)?[_\-]?)+

  1. 输入文本应以a-zA-Z0-9开头.
  2. 单词之间允许空格(单个)
  3. 允许使用"_"和" - "但不能连续.

我们的问题是,对于某些输入字符串,CPU时间变高并导致挂起线程.我们也得到例外.任何人都可以帮助我优化模式或建议一个新的模式来解决我的问题.

Exception details                              
============================================                           
Hung thread details, all the same:
[9/28/11 11:40:07:320 CDT] 00000003 ThreadMonitor W   WSVR0605W: Thread "WebContainer : 26" (0000004f) has been active for 709755 mi
lliseconds and may be hung.  There is/are 1 thread(s) in total in the server that may be hung.
        at java.util.regex.Pattern$GroupCurly.match(Pattern.java:3938)
        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4180)
        at java.util.regex.Pattern$Branch.match(Pattern.java:4124)
        at java.util.regex.Pattern$Ques.match(Pattern.java:3703)
        at java.util.regex.Pattern$Curly.match0(Pattern.java:3801)
        at java.util.regex.Pattern$Curly.match(Pattern.java:3756)
        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4180)
        at java.util.regex.Pattern$Loop.match(Pattern.java:4307)
        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4239)
        at java.util.regex.Pattern$Ques.match(Pattern.java:3703)
        at java.util.regex.Pattern$BranchConn.match(Pattern.java:4090)
        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4239) …
Run Code Online (Sandbox Code Playgroud)

java regex

11
推荐指数
2
解决办法
3844
查看次数

标签 统计

java ×1

regex ×1