On Thu, 18 Oct 2007 22:00:28 -0700, Dylan Nicholson
<> wrote:
>I can write a regular expression that will only match strings that are
>NOT the word apple:
>
>^([^a].*|a[^p].*|ap[^p].*|app[^l].*|apple.+)$
>
>But is there a neater way, and how would I do it to match strings that
>are NOT the word apple OR banana? Then what would be needed to match
>only strings that do not CONTAIN the word "apple" or "banana" or
>"cherry"?
>
>I'd love it if the following worked:
>
>^[^(apple)(banana)(cherry)]*$
>
>But it appears the parantheses are ignored, as
>
>^[(apple)(banana)(cherry)]*$
>
>simply matches any string that consists entire of the characters
>a,b,c,e,h,l,n,r,p & y.
A simple way is to write the regex to match apple or banana or cherry,
do the match and then check the Success property of the match object.
Execute the following mini program
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Regex r = new Regex(".*apple|banana|cherry.*");
string[] strings =
"apple,banana,cherry,applebanana,applebananacherry ,fishapple,chips,chip
and apple,apple pie".Split(',');
foreach (string s in strings)
{
Console.WriteLine("{0} Match? {1}", s,
r.Match(s).Success);
}
Console.ReadLine();
}
}
}
You should get this:
apple Match? True
banana Match? True
cherry Match? True
applebanana Match? True
applebananacherry Match? True
fishapple Match? True
chips Match? False
chip and apple Match? True
apple pie Match? True
--
http://bytes.thinkersroom.com