如何在C#中的正则表达式中使用此正则表达式筛选器字符串?
我有以下正则表达式字符串“如何在C#中的正则表达式中使用此正则表达式筛选器字符串?,c#,regex,C#,Regex,我有以下正则表达式字符串“(\”\--[a-zA-Z]+\””,但我不能使用它,因为它使用双引号。 我可以在这里尝试哪些转义字符 我想在C#代码中使用如下方法从以下字符串中过滤“KernalSize”: parser.add_argument("--KernalSize", default = 6, help = "Noise removal") 下面的过滤器(\“\--[a-zA-Z]+\”返回“--KernalSize”。但是,当我尝试在C#代码中设
(\”\--[a-zA-Z]+\”
”,但我不能使用它,因为它使用双引号。
我可以在这里尝试哪些转义字符
我想在C#代码中使用如下方法从以下字符串中过滤“KernalSize”:
parser.add_argument("--KernalSize", default = 6, help = "Noise removal")
下面的过滤器(\“\--[a-zA-Z]+\”
返回“--KernalSize”
。但是,当我尝试在C#代码中设置过滤器时,它失败了,因为字符串中有一个双引号
const string ParamNameFilter = @"(\"\--[a-zA-Z]+\")";
所以你的正则表达式字符串
(\“\--[a-zA-Z]+\”
应该匹配像“--AnythingAlpha”
这样的字符串
实际上,-
之前的反斜杠甚至是不必要的,因此它会引发一个问题,即是否存在任何类型的打字错误,因为它只相当于(\“--[a-zA-Z]+\”
或更简单的(\“--[a-Z]+\”
,不区分大小写
现在只需要用C#字符串来表示这个字符串:
(\“\--[a-zA-Z]+\”
=>到其中一个
@(\“”\-[a-zA-Z]+\“”)“
“(\\\\-[a-zA-Z]+\\\””
public static void Main (string[] args)
{
Console.WriteLine(@"(\""\--[a-zA-Z]+\"")");
Console.WriteLine("(\\\"\\--[a-zA-Z]+\\\")");
}
两个报价选项是 双引号
“(\”--[a-zA-Z]+\””
逐字@(“”--[a-zA-Z]+“”)“
注意,在逐字记录字符串中,双引号是通过双引号转义的。像这样吗<代码>字符串模式=@“”--([a-zA-Z]+)“”通常在C#string literal或string中使用
“
是没有问题的。请您提问以澄清“不能使用它,因为它使用了双引号”的意思是什么?@第四个与OP已经使用的没有区别的鸟…(因为”“和\”“产生了相同的值…)你能解释一下为什么你认为它更好吗?@第四鸟对不起,你是对的。OP只需要阅读(审查,建议阅读文档是不可接受的)关于字符串文本以及@.“
和.…”
之间的差异。另外,一个精确的副本