簡體   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