2012-12-08 26 views
1

我写了一个正则表达式来验证名称。名字可以从字母开始,可以跟着字母,数字,空格或_。 我写的正则表达式是:RegEx性能问题

private static final String REGEX = "([a-zA-Z][a-zA-Z0-9 _]*)*"; 

如果输入的是:“kasklfhklasdhklghjsdkgsjkdbgjsbdjKg;”节目卡上matcher.matches()

Pattern pattern = Pattern.compile(REGEX); 
Matcher matcher = pattern.matcher(input); 

if (matcher.matches()) { 
    System.out.println("Pattern Matches"); 
} else { 
    System.out.println("Match Declined"); 
} 

如何优化正则表达式?

+0

为了获得最佳性能,您应该创建自己的字符串验证器。否则,让JVM为您做优化。 –

+0

字符串验证器? REGEX验证是不同的策略吗? –

+0

这意味着你自己解析字符串,并检查它的任何错误,更多的代码,但它可以比使用正则表达式更快。无论如何,请检查这里的人的答案。 –

回答

4

您正则表达式更改为:

private static final String REGEX = "[a-zA-Z][a-zA-Z0-9 _]*"; 

它将匹配点击字符串。