Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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,我有数组的字符串 其中一个字符串: myText=“[Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan]” [Date].[Hierarchy].[Year].&部分始终相同,但其余部分根据今天的日期而变化 因此,今天的字符串是[Date].[Hierarchy].[Year].&2013].&Q3].&Jul],但在数组中,我还有其他字符串,如[Date].[Hierarchy].[Year].&2005].&Q1].&Jan].&20] regex也应

我有数组的字符串

其中一个字符串:

myText=“[Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan]”

[Date].[Hierarchy].[Year].&
部分始终相同,但其余部分根据今天的日期而变化

因此,今天的字符串是
[Date].[Hierarchy].[Year].&2013].&Q3].&Jul]
,但在数组中,我还有其他字符串,如
[Date].[Hierarchy].[Year].&2005].&Q1].&Jan].&20]

regex也应该选择那些人退出

我只对数组中的字符串感兴趣,比如
[Date].[Hierarchy].[Year].&[2005].&Q1].&Jan',[Date].[Hierarchy].[Year].[2005].[Q1].&Mar].


我希望你能得到这个模式。

这个
正则表达式应该可以。年份当前设置为4位,如果你只想它与2005年匹配,请替换
\d{4}

^\[Date\]\.\[Hierarchy\]\.\[Year\]\.&\[\d{4}\]\.&\[Q1\]\.&\[[A-Z-a-z]{3}\]$
结果如下:

   [Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan] // matches
   [Date].[Hierarchy].[Year].&[2013].&[Q3].&[Jul] // no match
   [Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan].&[20] // no match
编辑您的注释:确保在字符串声明之前添加@

 var pattern = new Regex(@"^\[Date\]\.\[Hierarchy\]\.\[Year\]\.&\[\d{4}\]\.&\[Q1\]\.&\[[A-Z-a-z]{3}\]$");
      var matches = pattern.IsMatch("[Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan]");

我可以得到模式,但它需要所有字符串以[Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan].&[20]结尾。我不知道如何选择它们。这些字符串的模式应该返回false。请发布您的模式,以便我们可以处理一些问题。我无法转义[character]。请告诉我如何表示[Date].pattern在文本中?然后我可以做其余的我猜非常感谢你。对不起,我是C#新手,当我使用你的模式时,我用引号将它分配给文本,它告诉我编译常量值不正确。我不确定是否应该将该模式传递给类方法,然后我使用字符串sPattern=“^”+Regex.Escape(“[”+“日期”)。“+Regex.Escape(“[”+”层次结构]。“+Regex.Escape(“[”+”年份]。”和“+Regex.Escape(“[”+”\\d{4}”)。”和“+Regex.Escape(“[”+”\\w{3}]$””),它完成了这项工作。但我也想知道如何在我的代码中直接使用您的模式?@akdurmus Edit补充说明。非常感谢。我非常感谢