Как объединить элементы списка между определенными элементами

Поплавки используются для хранения более широкого диапазона чисел, чем может быть помещено в целое число. К ним относятся десятичные числа и номера стилей научной нотации, которые могут быть более значительными, чем могут соответствовать 32 битам. Вот глубокое погружение в них: http://en.wikipedia.org/wiki/Floating_point

0
задан Erik Philips 5 March 2019 в 18:57
поделиться

1 ответ

Реальный базовый пример с регулярным выражением:

var pattern = new Regex("([^ ]+) \"([^\"]+)\" \\(([^)]+)\\)");
var match = pattern.Match("command \"string\" (0, 1, 2)");
var command = match.Groups[1];
var text = match.Groups[2];
var location = match.Groups[3];

Console.WriteLine(command);
Console.WriteLine(text);
Console.WriteLine(location);

В этом примере предполагается, что у вас всегда будет одинаковое количество параметров одного типа, и он не обрабатывает, включая кавычки в строке , но это дает вам представление о том, как вы могли бы реализовать это с помощью регулярного выражения.

Объяснение регулярного выражения

(?<command>[^ ]+)                                  The first sequence of characters up to a space
( (?<parameter>...))*                              Zero or more parameters, separated by a space

Выражение группы захвата parameter является одним из следующих:

(?<boolean>true|false)                             A boolean literal
(?<integer>[+-]?[0-9][0-9]*)                       An integer literal
(?<float>[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)   A floating point literal
(?<string>\"[^\"]+\")                              A string literal
(?<vector>\\([^)]+\\))                             A vector literal

Так как вам удалось Чтобы добавить свои собственные выражения для целых чисел и чисел с плавающей точкой, я предполагаю, что вы понимаете, как каждое из отдельных регулярных выражений соответствует их соответствующим частям. Это просто выглядит немного устрашающе, когда вы объединяете все эти выражения вместе с символом канала между ними.

0
ответ дан Andrew Williamson 5 March 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: