我想验证 Java 中的名称,该名称将允许单次使用以下特殊字符 {,-.'}。我能够使用表达式来实现,该表达式允许用户仅在字符串中输入此类特殊字符。但我无法弄清楚如何添加限制,使用户不能多次添加这些字符。我尝试使用量词来实现它,但仍然不成功。我已经完成了以下代码!
Pattern validator = Pattern.compile("^[a-zA-Z+\\.+\\-+\\'+\\,]+$");
最佳答案
您可以在正则表达式中使用前瞻断言:
Pattern validator = Pattern.compile(
"^(?!(?:.*?\\.){2})(?!(?:.*?'){2})(?!(?:.*?,){2})(?!(?:.*?-){2})[a-zA-Z .',-]+$");
(?!(?:.*?[.',-]){2})
是负向前瞻,意味着字符类中不允许出现超过 1 个字符。
关于java - 使用正则表达式在特殊条件下进行名称验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992512/