Предположим, что я следующий текстовый блок:Извлечение группы чисел в квадратных скобках с использованием регулярных выражений
/HDMAreaCoverageValue CIP3BeginPrivate
/HDMZones <</HDMInkC [0.000000][0.000002][0.000400][0.006000]
/HDMInkM [0.006000][0.086000]
/HDMInkB [0.000000][0.000002][0.000400]
>> def
Я пытаюсь извлечь только цифры в скобках - но, с моей нынешней модели, все я получаю являются фигурные скобки. Я сейчас пытаюсь:
Regex ColorValueRegex = new Regex("HDMZones([0-9,]{1,})+>>");
Что не так с этим рисунком? Я вижу, что я делаю это извлечения данных \ запятая (или точка) из данных, которые я расскажу позже.
Мой код:
foreach (var data in ValidFiles)
{
Regex ColorValueRegex = new Regex("HDMZones([0-9,]{1,})+>>");
var RegexAux2 = ColorValueRegex.Match(data);
//HDMZonesNumbers.Add(RegexAux2.Groups[1].ToString().Replace("HDMZones <</", "").Replace("<</", "").Replace("/", ""));
string pattern = @"([\d]+[,.]{0,1})+";
string NumbersCleaned = Regex.Match(RegexAux2.ToString(), pattern).Value;
}
Закомментированный часть, потому что после извлечения я добавлю полученную строку в списке. Я ожидаю, чтобы извлечь строку, как:
[0.000000][0.000002][0.000400][0.006000][0.006000][0.086000]
я уже пытался использовать много примеров, представленных из StackOverflow, но ни один из «эм не сделал то, что мне нужно. Прежде чем писать этот код, я работал, но был внутри мега-петли foreach - теперь я обрабатываю данные по отдельности. Любая помощь будет оценена по достоинству. Спасибо
Понял, но мой компилятор дает мне «непризнанный последовательность» на обратной косой черты. Ваш пример - это php. –
Я не владею строковыми функциями 'C#'. Попробуйте двойную косую черту '\\ d',' \\ ['или' \\] '. Хит и испытание :-) –
Я сделал небольшой тест и выглядит так: \ [\ d {1,}. \ D {1,} \] работает, я нашел полезным изучить регулярное выражение в C# this free e -book http://www.syncfusion.com/resources/techportal/details/ebooks/regularexpressions –