commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Henri Yandell <flame...@gmail.com>
Subject Re: [lang] Wildcard regex
Date Sun, 10 Oct 2010 05:52:46 GMT
+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 <sebbaz@gmail.com> wrote:
> On 9 October 2010 12:33, Stephen Colebourne <scolebourne@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 <sebbaz@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 <scolebourne@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 <pbenedict@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 <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
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> 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
>
>

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


Mime
View raw message