关于c#:为什么“[”与[a-zA-Z]相匹配

Why “[” gets matched by [a-zA-Z]

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
Regex oRegex = new Regex(@"test[a-zA-z]");
string st = @"this is a test1 and testA and test[abc] another testB and test(xyz) again.";
foreach(Match match in oRegex.Matches(st))
{
     Console.WriteLine(match.Value);
}

输出:P></

头P></

[测试P></

》教学大纲P></

问题:为什么在test[输出?the character ZA Z级[阿尔法] is only to Match做特点Z和Z一通。P></


Z是你的错别字,把这个换成1〔4〕。

1
Regex oRegex = new Regex(@"test[a-zA-Z]");

因为[属于ASCII范围A-z,所以将char类中存在的A-z改为A-z

1
Regex oRegex = new Regex(@"test[a-zA-Z]");


你的正则表达式有错别字。[a-zA-z]应为[a-zA-z]

字符[介于Az字符之间。