Re: Help with Regex and trying to mimic the VB "like" comparison

From: Niki Estner (niki.estner_at_cube.net)
Date: 06/15/04


Date: Tue, 15 Jun 2004 18:48:05 +0200

After a brief look, I think this code won't work for strings containing
backslashes, braces, or any other Regex-metacharacters.
I'd suggest using Regex.Escape(...) to escape all the meta-characters in the
pattern, and then replacing "\*" to ".*", and "\?" to ".", and adding the
"^"/"$" prefix/suffix.

Niki

PS: Maybe your users would be glad if they had the choice to use the whole
power of Regex's, too (optionally, of course). Like in the Search-Replace
dialog of VS.

"Andrew Baker" <webmaster@vbusers.com> wrote in
news:c19b84e5.0406150720.1fb221c3@posting.google.com...
> FYI have managed to bodge something together below which seems to work:
>
>
http://www.vbusers.com/codecsharp/codeget.asp?ThreadID=25&PostID=1&NumReplies=0
>
> andrew
>
> "Beeeeeeeeeeeeves" <Beeeeeeeeeeeeves@discussions.microsoft.com> wrote in
message news:<DB0F13A1-8FC8-4210-A888-E312CA820A56@microsoft.com>...
> > You can use regexes, just allow the pattern the user types be the
pattern for the regex, but with a few precautions:
> > 1) Any characters they type that are regex escapes, you'll need to
prefix them with \ to let the regex know they are literals, but beware that
you may not want to allow these in the filename anyway.
> > See
> >
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconRegularExpressionsLanguageElements.asp
(watch for wordwrap)
> > 2)
> >
> > "Andrew Baker" wrote:
> >
> > > I am trying to write a function which provides my users with a file
> > > filter. The filter used to work just using the VB "Like" comparision,
> > > but I can't find the equivilant in C#. I looked at RegEx.IsMatch but
> > > it behaves quite differently. Is there a way I can mimic the DOS
> > > filtering of filenames (eg. "*.*" or "*" returns all files, "*.xls"
> > > returns all excel files, "workbook*" returns all files begining with
> > > "workbook" etc)?
> > >
> > > thanks in advance...
> > >
> > > andrew
> > >



Relevant Pages

  • Re: Finding formatting items in a string
    ... I even found a FAQ on this... ... And a further completed regex, including the fact that you can use within the custom pattern if you want to... ... Just escape them again. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: oniguruma : cant get it to search for (backslash)
    ... ArgumentError: Oniguruma Error: end pattern at escape ... In a regex literal a backslash is a metacharacter, ...
    (comp.lang.ruby)
  • RE: Help with Regex and trying to mimic the VB "like" comparison
    ... You can use regexes, just allow the pattern the user types be the pattern for the regex, but with a few precautions: ... Any characters they type that are regex escapes, you'll need to prefix them with \ to let the regex know they are literals, but beware that you may not want to allow these in the filename anyway. ... "Andrew Baker" wrote: ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How to search/match a variable pattern
    ... there are some meta-characters, \:, that I need to escape, but how do I escape ... whether I found a match of a particular string on $path and do not need to ... Or do I get the regex logic all wrong ... ... The one liner is just a test on whether am using the pattern matching correctly ...
    (perl.beginners)
  • Re: How to search/match a variable pattern
    ... upper case both the string and the pattern that I am searching for. ... You probably have regex meta-characters in $pattern that need to be escaped. ...
    (perl.beginners)