排除字符串开头和结尾的特殊字符

本文关键字:特殊字符 结尾 字符串 开头 排除 | 更新日期: 2023-09-27 18:10:30

我想要一个正则表达式来排除字符串开头和结尾的特殊字符

我试过这个代码,但它不工作

String strFileName = Regex.Replace(FileName, @"[^A-Za-z0-9-_ ]", "");
<asp:RegularExpressionValidator ID = "Regular" 
            ValidationGroup = "valGroup" runat="server" ControlToValidate = "txtreport"
            ErrorMessage = "Please enter valid data."
            ValidationExpression = "([a-z]|[A-Z]|[0-9])*">
</asp:RegularExpressionValidator>

排除字符串开头和结尾的特殊字符

差不多完成了,只需添加锚将匹配绑定到字符串的开头或结尾,并告诉regex引擎匹配多个字符:

String strFileName = Regex.Replace(FileName, 
    @"^              # Match the start of the string
    [^A-Z0-9_ -]+    # followed by one or more characters except these
    |                # or
    [^A-Z0-9_ -]+    # Match one or more characters except these
    $                # followed by the end of the string", 
    "", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);

还有,你的ValidationExpression很奇怪。

ValidationExpression="[a-zA-Z0-9]*"

的意思相同,但不允许_, <space>-,您的"特殊字符替换器"忽略了。所以你可能想用

ValidationExpression="[a-zA-Z0-9_ -]*"