Regex 我需要使用正则表达式消除特殊字符
我的应用程序支持多种语言;但下面是我的代码,它只允许英文字符Regex 我需要使用正则表达式消除特殊字符,regex,c#-4.0,Regex,C# 4.0,我的应用程序支持多种语言;但下面是我的代码,它只允许英文字符 Regex.Match(inputstr, "[^a-z0-9]", RegexOptions.IgnoreCase); 我需要消除输入字符串中的任何特殊字符,它应该允许使用其他语言的普通字符(如日语汉字字符) 下面是我的代码不适用于任何语言,请让我知道我在哪里犯了错误 if (Regex.IsMatch(txtInput.Text.Trim(), @"[^+^-^.^,^!^@^#^$^%^^^&^*^(^)^;^|^&l
Regex.Match(inputstr, "[^a-z0-9]", RegexOptions.IgnoreCase);
我需要消除输入字符串中的任何特殊字符,它应该允许使用其他语言的普通字符(如日语汉字字符)
下面是我的代码不适用于任何语言,请让我知道我在哪里犯了错误
if (Regex.IsMatch(txtInput.Text.Trim(), @"[^+^-^.^,^!^@^#^$^%^^^&^*^(^)^;^|^<^>^'^/^_^=^}^{^?^:^~^`^]"))
{
//show error
}
else
{
//valid characters
}
if(Regex.IsMatch(txtInput.Text.Trim(),@“[^+^-^.^,^!^^^^^^^^^^-^%^^^^^^&^^^^^(^)^;^^^^^^^^^/^^^^=^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
{
//显示错误
}
其他的
{
//有效字符
}
您可以尝试使用下面的正则表达式来匹配除空格以外的特殊字符
(?:[^\w ]+|_+)
然后使用trim函数修剪匹配的字符。@AvinashRaj这是您的建议吗?请让我知道Regex.IsMatch(txtInput.Text.trim(),@“[^+^-^.^,^!^^-^^^^%^^^^&^^^^^^^^^/^^^=^^^^^^^^^^^:^^^^-^++>,如果您想匹配一个或多个非单词字符,可以简单地使用
[\W]+
@AvinashRaj完善你的代码!但它也排除了空格字符:(我需要在单词之间留出空格,怎么做?试试这个(?:[^\w]+\u124;+)
。让我知道它是否有效。太棒了!!适合我!!!我也试过[^\w\s]+它按预期工作!!!哪一个好用…下划线包含在\w中,因此不确定您为什么要添加它作为与
@funkurm的替代匹配项。他希望匹配特殊字符..即,\u
包含..而在char类中[^\w]
,这与下划线符号不匹配。啊,这是一个负字符类,我的错。