-5

我有数组字符串。

字符串之一:

myText = "[日期].[层次结构].[年份].&[2005].&[Q1].&[Jan]"

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

所以它会是今天喜欢[Date].[Hierarchy].[Year].&[2013].&[Q3].&[Jul]的,但在数组中我还有其他字符串喜欢[Date].[Hierarchy].[Year].&[2005].&[Q1].&[Jan].&[20]

正则表达式也应该选择退出。

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

我希望你能得到模式。

4

1 回答 1

1

Regex应该这样做。年份当前设置为 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]");
于 2013-07-30T10:20:45.230 回答