为什么我不能匹配POSIX字符类

时间:2012-03-10 03:36:22

标签: .net regex posix

以下代码段打印False

Console.WriteLine(Regex.IsMatch("abc", @"[[:alpha:]]"));

但这会打印True

Console.WriteLine(Regex.IsMatch("abc", @"[a-zA-Z]"));

为什么呢?它们不应该是等价的吗?

1 个答案:

答案 0 :(得分:9)

.NET Regexes不支持Posix字符类。但它们确实支持Unicode组。

这样可行:

Regex.IsMatch("abc", @"^\p{L}+$");

\p{L}组匹配所有Unicode字母。

有关详细信息,请参阅此处:

http://msdn.microsoft.com/en-us/library/20bw873z.aspx#CategoryOrBlock

相关问题