使用正则表达式匹配 C# Unicode 标识符
使用 .Net Regex 模式匹配 C# 标识符(特别是属性或字段名称)的正确方法是什么?
背景。我曾经使用以 ASCII 为中心的 @"[_a-zA-Z][_a-zA-Z0-9]*" 但现在 unicode 大写和小写字符是合法的,例如“AboöДЖem”。我应该如何将这些包含在模式中?
谢谢, 最大限度
What is the right way to match a C# identifier, specifically a property or field name, using .Net Regex patterns?
Background. I used to use the ASCII centric @"[_a-zA-Z][_a-zA-Z0-9]*" But now unicode uppercase and lowercase characters are legit, e.g. "AboöДЖem". How should I include these in the pattern?
Thanks,
Max
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个考虑了不允许的前导数字的版本:
下面是 PowerShell 中的一些测试:
Here's a version that takes into account the disallowed leading digits:
And here are some tests in PowerShell:
根据 http://msdn.microsoft.com/en-us/library/aa664670 .aspx,并忽略关键字和unicode-escape-sequence内容,
According to http://msdn.microsoft.com/en-us/library/aa664670.aspx, and ignoring the keyword and unicode-escape-sequence stuff,
这个问题是通过正则表达式中的预定义类解决的吗 \w 将匹配 öД。
Is that problem solved by the predefined classes in regex \w will match öД.