Reputation: 940
I need to match ["this"
but not :["this"
I have this code:
Match match = Regex.Match(result, @"\[""(.*?)""",
RegexOptions.IgnoreCase);
while (match.Success)
{
MessageBox.Show(match.Groups[1].Value.Trim());
}
I have tried the pattern @"(?!:)\[""(.*?)"""
, but it still match :["this"
. Whats the pattern I need to achieve this?
Upvotes: 3
Views: 5628
Reputation: 6424
I used RegexBuddy (I love that app) set to .NET and got the following expression:
@"(?<!:)\[""(.*?)"""
Upvotes: 3
Reputation: 269298
You're doing a negative lookahead when you should be doing a negative lookbehind. Try this instead:
Match match = Regex.Match(result, @"(?<!:)\[""(.*?)""", RegexOptions.IgnoreCase);
Upvotes: 2
Reputation: 63340
You are looking ahead (rightwards in the string) when you want to be looking behind (leftwards in the string).
Try @"(?<!:)\[""(.*?)"""
instead.
Upvotes: 5