使用正则表达式进行Java字符串验证

时间:2015-02-09 11:21:37

标签: java regex

我需要使用正则表达式验证输入字符串。

要求是:

输入

  1. 不得以%_

  2. 开头
  3. 不得包含&#><

  4. 可能为空

  5. 我已成功使用[^%_#&<>][^#&<>]*|^$

    有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的正则表达式错误,您还应该对第一个变体放置^$限制:

^[^%_#&<>][^#&<>]*|$

这是因为第一种情况可以应用于子串

您定义的正则表达式只是说明:空字符串,或至少有一个字符不是%_#,...

的字符串

它认为提议的正则表达式足够好。一些(可能不是java)正则表达式库提供了额外的功能来声明字符串不应包含特定字符。但由于正则表达式并不复杂,所以它不会那么有用。