gpt4 book ai didi

c# - 使用正则表达式检测“\”(反斜杠)

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:46 24 4
gpt4 key购买 nike

我有一个C#正则表达式

[\"\'\\/]+


如果要在字符串中找到某些特殊字符,我想用它来评估并返回错误。

我的测试字符串是:

\test


我有一个对此方法的调用来验证字符串:

public static bool validateComments(string input, out string errorString)
{
errorString = null;
bool result;

result = !Regex.IsMatch(input, "[\"\'\\/]+"); // result is true if no match
// return an error if match

if (result == false)
errorString = "Comments cannot contain quotes (double or single) or slashes.";

return result;
}


但是,我无法匹配反斜杠。我尝试了几种工具,例如regexpal和VS2012扩展,它们似乎都可以很好地匹配此regex,但是C#代码本身不行。我确实意识到C#正在将字符串从Javascript Ajax调用传入时转义,所以还有另一种匹配该字符串的方法吗?

它确实匹配/ test或'test或“ test,但不匹配\ test

最佳答案

\甚至由正则表达式使用。尝试"[\"\'\\\\/]+"(因此请对\进行两次转义)

请注意,您可能有@"[""'\\/]+“,也许它会更易读:-)(通过使用@,您必须转义的唯一字符是",而使用第二个""

您实际上并不需要+,因为最后[...]的意思是“其中之一”,对您来说就足够了。

不要吃你无法咀嚼的东西...代替正则表达式使用

// result is true if no match
result = input.IndexOfAny(new[] { '"', '\'', '\\', '/' }) == -1;


我认为没有人会丢失工作,因为他更喜欢 IndexOf而不是正则表达式:-)

关于c# - 使用正则表达式检测“\”(反斜杠),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com