我正在尝试编写一个不允许在字符串中使用单引号或双引号的正则表达式(可以是单行或多行字符串)。根据我的上一个问题,我写了这样^(?:(?!"|').)*$
,但它不起作用。真的很感激,如果有人能帮助我在这里。
答案 0 :(得分:10)
只需使用不包括引号的字符类:
^[^'"]*$
(在[]
字符类说明符中,^
前缀会反转规范,因此[^'"]
表示任何不是'
或{{1}的字符}。)
答案 1 :(得分:0)
只需使用与引号匹配的正则表达式,然后否定匹配结果:
var regex = new Regex("\"|'");
bool noQuotes = !regex.IsMatch("My string without quotes");
答案 2 :(得分:0)
试试这个:
string myStr = "foo'baa";
bool HasQuotes = myStr.Contains("'") || myStr.Contains("\""); //faster solution , I think.
bool HasQuotes2 = Regex.IsMatch(myStr, "['\"]");
if (!HasQuotes)
{
//not has quotes..
}
答案 3 :(得分:-1)
下面的正则表达式允许使用字母数字和除引号之外的所有特殊字符('和"")
@"^[a-zA-Z-0-9~+:;,/#&_@*%$!()\[\] ]*$"
您可以像
一样使用它[RegularExpression(@"^[a-zA-Z-0-9~+:;,/#&_@*%$!()**\[\]** ]*$", ErrorMessage = "Should not allow quotes")]
这里使用[]的转义序列()。由于它没有在这篇文章中显示