正则表达式中的Unicode字符

 黄镇郁皓伟嘉惟 发布于 2023-02-09 18:45

我有一个正则表达式:

return Regex.IsMatch(_customer.FirstName, @"^[A-Za-z][A-Za-z0-9@#%&\'\-\s\.\,*]*$");

现在,一些客户对他们的姓氏或名字中的元音进行了fada,如下所示: Brendán

注意:在一个你可以通过按住得到发达alt,ctrl然后按a.

我已经尝试将这些字符添加到正则表达式中,但是当程序尝试编译时出现错误.

我可以允许用户输入具有fada的这种字符的唯一方法是完全删除正则表达式,这意味着用户可以输入他们想要的任何内容.

有没有办法使用上面的表达式,并以某种方式允许以下字符?

á
é
í
ó
ú

hwnd.. 14

仅供参考,您不需要',.在角色类中转义上述内容[],并且可以-通过将其放置在角色类的开头或结尾来避免逃脱破折号.

您可以使用\p{L}哪种匹配来自任何语言的任何类型的字母.请参阅以下示例:

string[] names = { "Brendán", "Jóhn", "Jason" };
Regex rgx      = new Regex(@"^\p{L}+$");
foreach (string name in names)
    Console.WriteLine("{0} {1} a valid name.", name, rgx.IsMatch(name) ? "is" : "is not");

// Brendán is a valid name.
// Jóhn is a valid name.
// Jason is a valid name.

或者只是将所需的字符添加到[]要包含的角色类中.

@"^[a-zA-Z0-9áéíóú@#%&',.\s-]+$"


AFrieze.. 8

尝试合并\p{L}将匹配unicode"字母".所以a,á应该匹配\p{L}.

祝好运!

2 个回答
  • 尝试合并\p{L}将匹配unicode"字母".所以a,á应该匹配\p{L}.

    祝好运!

    2023-02-09 18:47 回答
  • 仅供参考,您不需要',.在角色类中转义上述内容[],并且可以-通过将其放置在角色类的开头或结尾来避免逃脱破折号.

    您可以使用\p{L}哪种匹配来自任何语言的任何类型的字母.请参阅以下示例:

    string[] names = { "Brendán", "Jóhn", "Jason" };
    Regex rgx      = new Regex(@"^\p{L}+$");
    foreach (string name in names)
        Console.WriteLine("{0} {1} a valid name.", name, rgx.IsMatch(name) ? "is" : "is not");
    
    // Brendán is a valid name.
    // Jóhn is a valid name.
    // Jason is a valid name.
    

    或者只是将所需的字符添加到[]要包含的角色类中.

    @"^[a-zA-Z0-9áéíóú@#%&',.\s-]+$"
    

    2023-02-09 18:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有