正则表达式使用相同字符串模式属性的变量 C#

Suz*_*uzy 6 .net c# regex string

我们可以替换字符串模式@"^[a-zA-Z''-'\s]{1,40}$"以用作属性中的变量吗?

我尝试将模式设置为字符串,但是当我使用[RegularExpression...]变量时它不起作用。我想使用一个变量,因为它是相同的正则表达式格式。

  private static String regexFormat = @"^[a-zA-Z''-'\s]{1,40}$";
Run Code Online (Sandbox Code Playgroud)

或者

   private static String regexFormat = "^[a-zA-Z''-'\s]{1,40}$";

  
    [Display(Name = "Name", Description = "First Name + Last Name.")]
    [Required(ErrorMessage = "First Name is required.")]
    [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage =
        "Numbers and special characters are not allowed in the name.")]


    [Required(ErrorMessage = "Last Name is required.")]
    [RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$", ErrorMessage =
        "Numbers and special characters are not allowed in the name.")]
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西

[RegularExpression(regexFormat, ErrorMessage ="Error in Format")]
Run Code Online (Sandbox Code Playgroud)

这可能吗,如果可以的话怎么办?

Ωme*_*Man 2

属性要求信息在应用程序的编译期间可用,并且不是动态的并且被锁定,这是编译器所需要的。

将模式设为 a const编译时常量)允许稍后在运行时计算/使用这样的值,并且可以在构造函数或字段初始值设定项/属性中设置该值。而在分配时readonly只读一次,因此不可行。

在这种情况下,使用const应该对您有用。