I’m working on a Regex in C# to exclude certain patterns within a string.
These are the types patterns I want to accept are: “%00” (Hex 00-FF) and any other character without a starting ‘%’. The patterns I would like to exclude are: “%0” (Values with a starting % and one character after) and/or characters “&<>’/”.
So far I have this
Regex correctStringRegex = new Regex(@"(%[0-9a-fA-F]{2})|[^%&<>'/]|(^(%.))",
RegexOptions.IgnoreCase);
Below are examples of what I’m trying to pass and reject.
Passing String %02This is%0A%0Da string%03
Reject String %0%0Z%A&<%0a%
If a string doesn’t pass all the requirements I would like to reject the whole string completely.
Any Help would be greatly appreciated!
I suggest this:
Explanation:
This ensures that
%is only matched when followed by two hexadecimals. Since you’re already compiling the regex with theIgnoreCaseflag set, you don’t needa-fA-F, either.