Надо разбить строку на поля. Поля выделены кавычками (двойными или одинарными):
"поле 1" 'поле 2''поле 3' ...
При этом в поле можно записать кавычки через экранирование:
"'это' одно \"поле\""
Такие поля можно расспарсить следующей регуляркой:
"\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" для полей в двойных кавычках
"\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'" для полей в одинарных кавычках
Например:
foreach (Match m in Regex.Matches(s, "\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""))
{
Console.WriteLine(m.Value);
}
Как можно сделать тоже самое, но получить последовательно не только Math'и
, но и текст между полями?
Если поместить все регулярное выражение в скобки, получится так называемая группа с захватом. Передав такое выражение в метод Regex.Split, вы получите необходимый результат.
(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")
Из MSDN:
If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.
Если в выражении переданном методу Regex.Split используются отмеченные подвыражения, то захваченный ими текст добавляется в результирующий массив. Например, при разбиении строки "грушево-сливовое" используя знак тире заключенный в скобки, результирующий массив так же включает элемент содержащий одно тире.
["грушево", "-", "сливовое"]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь возвратить значение JS функции на странице, загруженной в CEF браузере, используя метод EvaluateScriptAsyncПосетил десятки веб-страниц и документаций,...
Доброго времени сутокДопустим хочу сделать простую нейросеть для XOR: