commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Benedict <pbened...@apache.org>
Subject Re: [lang] Wildcard regex
Date Fri, 08 Oct 2010 14:10:27 GMT
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 <scolebourne@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-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message