What does the regex represent? A filename? If so, then maybe the code belongs in IO rather than Lang.
Also, filename globbing is not consistent across OSes. On 8 October 2010 15:32, Stephen Colebourne <scolebou...@joda.org> wrote: > Human users enter wildcards * and ? (because regex is too complex). In > my case, I'm passing it to MongoDB, which needs regex. > > Stephen > > > On 8 October 2010 15:10, Paul Benedict <pbened...@apache.org> wrote: >> Can I get some sense of use case? What would you use it for? Just curious. >> >> 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 > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org