例1:like( "abc123", "abc*" ) 返回:true 例2:like( "abc123", "abc1?3" ) 返回:true 例3:like( "abc123", "abc*34" ) 返回:false 例4:like( "abc123", "ABC*" ) 返回:false 例5:like( "abc123", "ABC*", true ) 返回:true 如上面,这种功能怎么实现?
/** * * @param str 需要正则表达式判断的字符串 * @param regex 正则表达式 * @param bool 是否区分大小写 * @return */ public static boolean like(String str,String regex,boolean bool) { regex = regex.replaceAll("\\*", ".*"); regex = regex.replaceAll("\\?", "."); Pattern pattern = Pattern.compile(regex,bool?Pattern.CASE_INSENSITIVE:0); Matcher matcher = pattern.matcher(str); return matcher.find(); }
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。