具有特定特殊字符的用户名的正则表达式

Regular Expression for username with particular special character

我必须验证具有特殊字符的用户名。例如:

raaghu@09$%^&     
@Raaghu098          
Raaghu         
9raghu  

只允许使用这些特殊字符:%^&@#$^*:'.-_

我该怎么做?

这应该有效:^(?:[a-zA-Z0-9%^&@#$^*:'.\-_]+)$

    var pattern = @"^(?:[a-zA-Z0-9%^&@#$^*:'.\-_]+)$";
    var validUsername = "raaghu@-09_$%^&";
    var InvalidUsername = "raaghu@09$%^&!";
    
    Regex.IsMatch(validUsername , pattern); // true
    Regex.IsMatch(InvalidUsername , pattern); // false