Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中的正则表达式中使用此正则表达式筛选器字符串?_C#_Regex - Fatal编程技术网

如何在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只需要阅读(审查,建议阅读文档是不可接受的)关于字符串文本以及
@.“
.…”
之间的差异。另外,一个精确的副本