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);
}
输出:
种皮
测试[
TESTB
问题:为什么输出中有test[
?字符类[a-zA-Z]应该只匹配字母a到z和A到Z.
答案 0 :(得分:3)
由于[
属于ascii range A-z
,因此将char类中的A-z
更改为A-Z
Regex oRegex = new Regex(@"test[a-zA-Z]");
答案 1 :(得分:3)
在你的情况下,Z是拼写错误。更改此[a-zA-Z]
Regex oRegex = new Regex(@"test[a-zA-Z]");
答案 2 :(得分:2)
你的正则表达式中有拼写错误。 [a-zA-z]
应为[a-zA-Z]
。
字符[
位于A
和z
字符之间。