+1. Seems to fit a RegexUtils.wildcardToRegex type method. Note that IO has a Wildcard concept already, so ideally it would match the same schema.
Hen On Sat, Oct 9, 2010 at 6:13 AM, sebb <seb...@gmail.com> wrote: > On 9 October 2010 12:33, Stephen Colebourne <scolebou...@joda.org> wrote: >> No, the wildcard is used for a database search. Find me all names >> matching "Foo*". This is not for [io]. > > But where do humans get the idea that * and ? are wildcards? > >> >> The oro code does look reasonable I'd say. > > Agreed, it could be adapted for Commons. > > However, whether the syntax it supports is universal I don't know. > > I think it's a useful addition, but the syntax needs to be carefully > documented. > > And it would be useful if there were versions for different OSes, to > allow filename matching using the standard for that OS. > >> Stephen >> >> >> On 9 October 2010 12:25, sebb <seb...@gmail.com> wrote: >>> 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 >>> >>> >> >> --------------------------------------------------------------------- >> 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