Я написал этот очень прямой код регулярного выражения
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace RegexTest1
{
class Program
{
static void Main(string[] args)
{
string a = "\"foobar123==\"";
Regex r = new Regex("^\"(.*)\"$");
Match m = r.Match(a);
if (m.Success)
{
foreach (Group g in m.Groups)
{
Console.WriteLine(g.Index);
Console.WriteLine(g.Value);
}
}
}
}
}
Однако вывод
0 "foobar123==" 1 foobar123==
Я не понимаю, почему он печатает дважды. почему должен быть захват с индексом 0? когда я говорю в своем регулярном выражении ^\"
, и я не использую для этого захват.
Извините, если это очень просто, но я не пишу Regex на ежедневной основе.
По мне, этот код должен печатать только один раз, а индекс должен быть 1, а значение должно быть foobar ==