RegEx性能问题

时间:2012-12-08 13:28:38

标签: java 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");
}

如何优化正则表达式?

1 个答案:

答案 0 :(得分:4)

将正则表达式更改为:

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

它会匹配字符串中的字符串。