On Oct 8, 2010, at 9:10 AM, Paul Benedict wrote: > Can I get some sense of use case? What would you use it for? Just curious. >
I've got code like this as well. It allows you to take a pattern containing glob-style wildcards and convert to a regex that you can then use to do your matching for you. I would also suggest including support for Ant-style wildcards if possible as well since those have achieved some ubiquity in the Java ecosystem. -Matt > On Fri, Oct 8, 2010 at 9:06 AM, Stephen Colebourne <scolebou...@joda.org> > wrote: >> I don't think comons lang has a routine for converting a standard >> wildcard string (with * and ?) to a regex. >> Here is a first suggestion, although I'm sure it can be improved. >> >> public Pattern createPattern(String text) { >> StringTokenizer tkn = new StringTokenizer(text, "?*", true); >> StringBuilder buf = new StringBuilder(text.length() + 10); >> buf.append('^'); >> boolean lastStar = false; >> while (tkn.hasMoreTokens()) { >> String str = tkn.nextToken(); >> if (str.equals("?")) { >> buf.append('.'); >> lastStar = false; >> } else if (str.equals("*")) { >> if (lastStar == false) { >> buf.append(".*"); >> } >> lastStar = true; >> } else { >> buf.append(Pattern.quote(str)); >> lastStar = false; >> } >> } >> buf.append('$'); >> return Pattern.compile(buf.toString(), Pattern.CASE_INSENSITIVE); >> } >> >> Other possile conversions would be * and ? to databse wildcards, so >> perhaps there is scope for a few related methods here? >> >> Stephen >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org