str = @"[abc,def],123,[def,abc],456[123,def,456,abc],[abc],[def],[123]";如何 str 如何匹配出所有中括号中带有abc和def的结果
结果如:
[abc,def]
[def,abc]
[123,def,456,abc]
[abc]
[def]
结果如:
[abc,def]
[def,abc]
[123,def,456,abc]
[abc]
[def]
Regex reg = new Regex(@"\[(?:[^\]]*abc[^\]]*(?:def)?[^\]]*|[^\]]*def[^\]]*(?:abc)?[^\]]*)\]");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
string str = @"[abc,def],123,[def,abc],456[123,def,456,abc],[abc],[def],[123]";
MatchCollection matches= Regex.Matches(str, @"(\[[^\]]*?\])",RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
if (match.Groups[1].Value.Contains("abc") && match.Groups[1].Value.Contains("def"))
{
Console.WriteLine(match.Groups[1].Value);
}
}
string str = @"[abc,def],123,[def,abc],456[123,def,456,abc],[abc],[def],[123]";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"\[[^\]]*(abc|def)[^\]]*\]");
foreach (System.Text.RegularExpressions.Match m in reg.Matches(str))
{ MessageBox.Show(m.Value); }