Regex negative lookahead in c#
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?
You are looking ahead (rightwards in the string) when you want to be looking behind (leftwards in the string).
Try @"(?<!:)\[""(.*?)"""
instead.
I used RegexBuddy (I love that app) set to .NET and got the following expression:
@"(?<!:)\[""(.*?)"""
You're doing a negative lookahead when you should be doing a negative lookbehind. Try this instead:
Match match = Regex.Match(result, @"(?<!:)\[""(.*?)""", RegexOptions.IgnoreCase);
精彩评论