c# - C#在正则表达式中允许斜杠(和其他类似字符)

标签 c# asp.net .net regex

我正在尝试根据输入的字符来验证字符串。我希望能够设置除字符和数字外还允许哪些字符。下面是我的扩展方法:

public static bool isAlphaNumeric(this string inputString, string allowedChars)
{
    StringBuilder str = new StringBuilder(allowedChars);
    str.Replace(" ", "\\s");
    str.Replace("\n","\\\\");
    str.Replace("/n", "////");
    allowedChars = str.ToString();

    Regex rg = new Regex(@"^[a-zA-Z0-9" + allowedChars + "]*$");
    return rg.IsMatch(inputString);
}


我使用的方式是:

s string = " te\m@as 1963' yili.ışçöÖÇÜ/nda olbnrdu" // just a test string with no meaning
if (s.isAlphaNumeric("ışŞö\Ö@üÜçÇ ğ'Ğ/.")) {...}


当然会给出一个错误:

parsing "^[a-zA-Z0-9ışŞö\Ö@üÜçÇ\sğ'Ğ/.]*$" - Unrecognized escape sequence


我知道stringbuilder replace函数是错误的。我希望能够接受allowedChars参数中给定的所有字符。这还可以包括斜杠(其他我不知道的类似于斜杠的字符吗?)鉴于此,我如何才能使我的替换功能正常工作?而且我的做法是否正确?我对正则表达式非常陌生,不知道如何使用正则表达式...

最佳答案

您需要在字符串上使用Regex.Escape

allowedChars = Regex.Escape(str.ToString());


应该这样做。

关于c# - C#在正则表达式中允许斜杠(和其他类似字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777676/

相关文章:

c# - 反射方法AccessException

asp.net - "object reference not set"在 Visual Studio 2010 中的 asp.net default.aspx 文件的设计 View 中显示

asp.net - 让经典 ASP 从 web.config 文件中的 appsettings 读取 key

jquery - 如何使用 json 从 sql server ASP.net 检索数据

c# - .NET 代码行计数器

java - SOAP 请求/响应比较工具

.net - 使用 vb.net 对大型 Excel 文件执行 SQL 查询的最佳方法是什么?

c# - 将 IDictionary<,> 作为属性中的参数传递,可能吗?

c# - LinQ ofType in 值

c# - 日志文件轮转 IOException