如何匹配两个括号之间的这种模式(字符 a-z,数字)?

How can I match this pattern (characters a-z, numbers ) between two brackets?

我有这个代码,我想匹配这个模式:

我怎样才能做到这一点?

应接受此输入:

["a1","a2"]

这是我的代码和我尝试过的代码:

 string text = "["a1","a2"]";
 Regex rg2 = new Regex(@"[^\""a-z|A-Z|0-9\""$]+(, [^\""a-z |A-Z |0-9\""$]+)+");
 if (rg2.IsMatch(text)
      Console.WriteLine("True");

你可以使用

Regex rg2 = new Regex(@"^\[""[a-zA-Z0-9]+""(?:,\s*""[a-zA-Z0-9]+"")*]$");
Regex rg2 = new Regex(@"\A\[""[a-zA-Z0-9]+""(?:,\s*""[a-zA-Z0-9]+"")*]\z");

参见 C# demo:

string text = "[\"a1\",\"a2\"]";
Regex rg2 = new Regex(@"\A\[""[a-zA-Z0-9]+""(?:,\s*""[a-zA-Z0-9]+"")*]\z");
Console.WriteLine(rg2.IsMatch(text)); // => True

详情:

  • \A - 字符串开头
  • \[" - ["固定字符串
  • [a-zA-Z0-9]+ - 一个或多个 ASCII letters/digits
  • " - 双引号
  • (?:,\s*"[a-zA-Z0-9]+")* - 零次或多次重复
    • , - 逗号
    • \s* - 零个或多个空格
    • "[a-zA-Z0-9]+" - ",一个或多个 ASCII 字母数字字符,"
  • ] - 一个 ] 字符
  • \z - 字符串的末尾。