正则表达式以捕获超出az的字母

Nif*_*fle 10 c# regex

只允许字母的正常正则表达式是"[a-zA-Z]",但我来自瑞典,因此我必须将其改为"[a-zåäöA-ZÅÄÖ]".但是假设我不知道字母表中使用了什么字母.

有没有办法自动知道哪些字符在给定的语言环境/语言中是有效的,还是我应该制作一个我认为我不知道的字符黑名单?

Ric*_*lay 14

您可以使用\ pL匹配任何"字母",它将支持所有语言中的所有字母.您可以使用"命名块"将其缩小到特定语言.可以在MSDN 上的字符类文档中找到更多信息.

我的建议是将正则表达式(或至少是"字母"部分)放入本地化资源中,然后可以根据当前区域设置和形式将其拉出到更大的模式中.

  • 对于那些不那么熟悉的正则表达式(像我一样),实际正确的代码是:\ p {Ll} (4认同)