正则表达式以捕获az之外的字母
只允许字母的正常正则表达式是“[a-zA-Z]”,但我来自瑞典,因此我必须将其改为“[a-zåäöA-ZÅÄÖ]” 。 但是假设我不知道字母表中使用了什么字母。
有没有办法自动知道哪些字符在给定的语言环境/语言中是有效的,还是我应该制作一个我认为我不知道的字符黑名单?
您可以使用 pL匹配任何“字母”,它将支持所有语言的所有字母。 您可以使用“命名块”将其缩小到特定语言。 可以在MSDN上的字符类文档中找到更多信息。
我的建议是将正则表达式(或至少“字母”部分)放入本地化资源中,然后可以根据当前区域设置和forms将其拉出到更大的模式中。
那么 p {name}呢?
匹配{name}指定的命免费精选名字大全符类中的任何字符。 支持的名称是Unicode组和块范围。 例如,Ll,Nd,Z,IsGreek,IsBoxDrawing。
我对unicode知之甚少,但也许你的角色适合unicode类?
请参阅使用p
和w
unicode语义的字符类别选择。
所有的字符都是“有效的”,所以我认为你真的要求在一个语言环境中“通常被认为是字母”的字符。
Unicode规范有一些指导原则,但一般来说答案是“不”,你需要列出你认为是“字母”的字符。
有没有办法自动知道哪些字符在给定的语言环境/语言中是有效的,还是我应该制作一个我认为我不知道的字符黑名单?
通常 ,这不是可能的。
在所有Engligh文本确实包括一些重音字符(例如“fête”和“naïve” – 在英国 – 英语中严格正确仍然使用重音)。 在某些语言中,很少使用某些标准字母(例如法语中的y-diaeresis)。
然后考虑包括外来词(这通常是使用技术术语的情况)。 报价将是另一个来源。
如果您的要求定义得足够狭窄,您可以创建定义,但这需要使用该语言的语言经验。
此正则表达式只允许有效符号通过:
上述就是C#学习教程:正则表达式以捕获az之外的字母分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
[a-zA-ZÀ-ÿ ]
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1001614.html