首页 > 解决方案 > 使用正则表达式测试特定字符串

问题描述

我将使用字符串数组测试 dd / mm / yyyy xx-xxxx-x xxx-xxx 形式的字符串,我用来定义正则表达式形式,但我认为格式未正确声明

Regex rgx1 = new Regex(@"^d{2}\/\d{2}\/\d{4}\t[A-Z]\d{2}\-\d{4}\-\[A-Z0-9]\d{1}\t[A-Z]\d{3}\-\[A-Z]\d{3}$");
Match FormatS = rgx1.Match(tab[i]);

if ( FormatS.Success)
{
    Console.WriteLine(tab[i]);
    Console.ReadLine();
}

标签: c#visual-studio

解决方案


根据您对示例输入的评论,这有效:

Regex rgx1 = new Regex(@"^\d{2}/\d{2}/\d{4}\s[A-Z]{2}-\d{4}-[A-Z0-9]{1}\s[A-Z]{3}-[A-Z]{3}$");

我发现的问题:

  • \[而不是[在两个地方
  • d而不是\d一开始
  • \t而不是\s(或者只是一个空格也可以)
  • 一些不必要的\d

我还删除了一些不必要的转义标记,但是……那些并不重要。


推荐阅读