• Sign in to Neowin Faster!

    Create an account on Neowin to contribute and support the site.

  • 0
Sign in to follow this  

Need some .NET based Regex help

Question

+Zag L.    661

I'm not that adept at regex and really need some guidance here. Below are my expressions 

 

First I am looking for all instances of Comstock that are not Comstock (exact case match)

(?!comstock)(?i)\Comstock\b

 

 

Second I'm looking only for fully lower case comstock.

?!comstock)(?i)\Comstock\b

 

Both of these expressions work just fine in an online tester however .NET complains about the \C as an unrecognized escape sequence.  I've tried using Regex.Escape("\C") in the string as well as manually making it "\\C" however while passing the parser without  error, it now fails to match any data.

 

So.. is there anyway to create that expression such that it finds instances of comstock that do not match a case sensitive comparison?

 

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0
ozzy76    145

When you say .NET complains, is this when it's ran locally or on the server itself? Does it compile with no errors?

Share this post


Link to post
Share on other sites
  • 0
+Zag L.    661

Compiles fine. It's run time exception when the regex utilizes the expression.  I want to blame the .NET regex parser because as I said, its a valid expression in several online regex testers

 

In a nutshell, I just need to find instances of a string that are not case sensitive matches to my desired word and that word always starts with the letter C.

 

If the source is "This is the best comstock of all is Comstock"  and my rule is Comstock must be in proper case, I need to find that lower case comstock as a match.

 

or 

 

If the source is "This is the best Comstock of all is comstock"  and my rule is Comstock must be in lower case, I need to find that proper case Comstock as a match.

 

 

 

 

Share this post


Link to post
Share on other sites
  • 0
Limit-Studios    1
Regex regex = new Regex(@"(?!comstock)(?i)Comstock\b");
Match match = regex.Match("This is the best comstock of all is Comstock");
if (match.Success)
{
  Console.WriteLine(match.Value);
}

Regex regex2 = new Regex(@"(?!Comstock)(?i)comstock\b");
Match match2 = regex2.Match("This is the best Comstock of all is comstock");
if (match2.Success)
{
  Console.WriteLine(match2.Value);
}

does this work for you?

Share this post


Link to post
Share on other sites
  • 0
Jonathans    7

I am guessing you came right, for regex where I am looking for a word or pattern there is a really awesome site called txt2re.com. It's awesome in that it can quickly help you build your regex pattern for multiple languages, c#, php, phython etc.

 

It's not suited for seriously complex regex but for quick things, it is  a god send.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.