问题
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?
回答1:
You are looking ahead (rightwards in the string) when you want to be looking behind (leftwards in the string).
Try @"(?<!:)\[""(.*?)"""
instead.
回答2:
I used RegexBuddy (I love that app) set to .NET and got the following expression:
@"(?<!:)\[""(.*?)"""
回答3:
You're doing a negative lookahead when you should be doing a negative lookbehind. Try this instead:
Match match = Regex.Match(result, @"(?<!:)\[""(.*?)""", RegexOptions.IgnoreCase);
来源:https://stackoverflow.com/questions/5081504/regex-negative-lookahead-in-c-sharp