关于.NET正则表达式中的d与[0-9]

d versus [0-9] in .NET regular expressions

本问题已经有最佳答案,请猛点这里访问。

我经常看到在.NET正则表达式中使用[0-9],而不是在堆栈溢出时使用\d。我问过为什么,答案往往是"\d[0-9]更匹配"。那么它还能匹配什么呢?这张表说它与十进制数字相匹配。那么\p{Nd}呢?

或者没有区别,这只是一个很好的实践,因为其他regex引擎?


我认为答案也在相关参考文献中:

\d matches any decimal digit. It is equivalent to the \p{Nd} regular
expression pattern, which includes the standard decimal digits 0-9 as
well as the decimal digits of a number of other character sets.

因此,\d可以匹配阿拉伯字符集中的十进制数字,这与[0-9]不匹配。