Mar*_*boe 6 java regex performance pattern-matching
我正在尝试使用正则表达式来确定用户在文本框中输入输入时应用的格式.
正则表达式如下:
(\\s?[" + alphabet + "]{9,9})+
Run Code Online (Sandbox Code Playgroud)
确定输入是否是给定字母表中长度为9的一个或多个字符串,可能由空格分隔.
(>[\\w\\s]+\\n[" + alphabet + "\\s]+)+
Run Code Online (Sandbox Code Playgroud)
检查输入是否为FASTA格式
匹配时,正则表达式运行速度非常慢inputString.matches(regexString)
.为什么是这样?
我想这可能是因为Java存储了所有可能的匹配(此时我不需要),但是?:
在每个括号中添加会破坏正则表达式.该怎么做?
谢谢,
马丁
编辑1:我无法重现此问题 - 它只发生在一台计算机上.这可能表明该特定VM设置有问题.
我们需要更强大的东西,因此我们将以不同的方式实现这一点.我选择Joel的答案是正确的,因为我相信Pattern中的一些特殊情况可能是原因.