Easy question this time.
I'm trying to test whether or not a string does not contain a character using regular expressions. I thought the expression was of the form "[^x]" where x is the character that you don't want to appear, but that doesn't seem to be working.
For example,
Regex.IsMatch("103","[^0]")
and
Regex.IsMatch("103&","[^&]")
both return true (I would expect false).
I started using "[^&]"
and thought maybe the & needed to be escaped as \&, but it didn't seem to make a difference.
Ideas? I assume it's something small.
Also, I'm using .NET, so keep that in mind.
Edit1:
I found this, but it doesn't seem to answer the issue I'm having.
Edit2:
I wanted to respond to Kevin and Joel's suggestions. These suggestions would indeed be faster, but they don't accomplish the flexibility I need in this case, so if you found this question through search, definitely look to see if their answers will fit your needs. In my case, the regular expression is getting passed in to a DataTable validation method that loops through each row and verifies that the contents of that row in a specific column matches the RegEx that is getting passed in. Since I'll be reusing this method for several other DataTables that are being validated, I wanted to:
- Use Regex to enable the widest range of validations, and
- Always look for a positive match (i.e. instead of using !Regex.IsMatch(cell, regexvariable), I wanted to rely on always being able to use Regex.IsMatch(cell, regexvariable) since the majority of DataTables invoking this method will be using the positive match instead of the negative.
Hopefully that helps.