我正在尝试使此正则表达式行起作用,但它们似乎不起作用(我无法将其打印出“匹配项”。
我的目标是从Scanner中读取一个字符串,然后运行此功能。如果字符串具有小写值或特殊字符,则我想调用无效函数,然后返回NULL。然后在isValid()方法中,让它返回false并结束。
如果它仅包含NUMBERS和UPPERCASE字符,我想按原样返回该字符串,以便它可以执行其他操作。
我似乎无法将它打印出来“匹配”。我确定我做对了,这确实让我感到沮丧,我一直在以各种不同的方式检查论坛,但似乎没有一个起作用。
谢谢您的帮助。
public static String clean(String str){ String regex = "a-z~@#$%^&*:;<>.,/}{+"; if (str.matches("[" + regex + "]+")){ printInvalidString(str); System.out.println("matches"); } else{ return str; } return null; } public static boolean isValid(String validationString){ //clean the string validationString = clean(validationString); if (validationString == null){ return false; }
matches将尝试匹配来自startstring.If的在start没有lowercase或者Special characters会fail。用.find或者干脆做出了积极的断言。
matches
start
lowercase
Special characters
fail
.find
^[A-Z0-9]+$
如果是这样passes,matches则为您提供有效的字符串。
passes