繁体   English   中英

如何修复我试图匹配1-100个字母,数字,空格,下划线和短划线的C#正则表达式

[英]How to repair my C# regex that attempts to match 1-100 characters of letters, numbers, spaces, underscores and dashes

所以我有一个领域

    [RegularExpression(@"([A-Za-z0-9\-\_ ]+){1,100}"]
    public string Name { get; set; }

正则表达式试图匹配长度为1-100个字符且仅包含字母,数字,下划线,短划线和空格的字符串。

我得到了例外

附加信息:解析“([A-Za-z0-9-_] +){1,100}” - 无法识别的转义序列_。

我怎样才能解决这个问题?

试试这个(摆脱下划线之前的反斜杠):

[RegularExpression(@"([A-Za-z0-9\-_ ]+){1,100}"]
public string Name { get; set; }

您需要删除所有转义和+ ,建议将连字符放在字符类的末尾以消除任何歧义:

[RegularExpression("[A-Za-z0-9_ -]{1,100}"]

由于RegularExpressionAttribute模式始终是隐式锚定的,因此无需在前面添加^ ,在结尾添加$ [A-Za-z0-9_ -]{1,100}将匹配由1到100个字符组成的字符串,这些字符可以是ASCII字母,数字, _空格或-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM