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

使用正则表达式进行Java字符串验证,java,regex,Java,Regex,我需要使用正则表达式验证输入字符串 要求是: 输入 不能以%开头_ 不能包含&、>、您的正则表达式是错误的,您还应该在第一个变量上放置^and$约束: ^[^%_#&<>][^#&<>]*|$ 这是因为第一种情况可以应用于子字符串 您定义的正则表达式只是声明:一个空字符串,或者至少有一个字符不是%、 它认为拟议的regex已经足够好了。有些可能不是java正则表达式库提供了附加功能来声明字符串不应包含特定字符。但是,由于正则表达式没有那么复杂,它不会有多

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

要求是:

输入

不能以%开头_


不能包含&、>、您的正则表达式是错误的,您还应该在第一个变量上放置^and$约束:

^[^%_#&<>][^#&<>]*|$
这是因为第一种情况可以应用于子字符串

您定义的正则表达式只是声明:一个空字符串,或者至少有一个字符不是%、


它认为拟议的regex已经足够好了。有些可能不是java正则表达式库提供了附加功能来声明字符串不应包含特定字符。但是,由于正则表达式没有那么复杂,它不会有多大帮助。

您可以使用“环顾四周”来避免重复某些字符,但我认为您当前的解决方案足够优雅。您对它不满意吗?您的正则表达式匹配%a和aDo您必须使用正则表达式吗?startsWith和contains对于这个用例来说似乎更容易。@Stewart:我想使用正则表达式会更快,因为contains应该运行多次,而正则表达式在同一次运行中检查所有约束。此外,正则表达式易于修改、维护,。。。然而,程序更复杂,更难适应。