Не говорите Вашему работодателю, что Вы хотите изучить Ruby. Скажите ему, что Вы хотите узнать о современном состоянии в веб-технологиях платформы. это просто происходит, что самыми горячими является Django и Ruby on Rails.
Reson RegEx.Split возвращает четыре значения, так что у вас есть ровно одно совпадение, поэтому RegEx.Split возврат:
RegEx.Split ' Основная цель - извлечь любой текст между совпадающим регулярным выражением, например, вы можете использовать RegEx.Split с шаблоном «[,;]» для разделения текста на запятые или точки с запятой. В NET Framework 1.0 и 1.1 Regex.Split возвращал только разделенные значения, в данном случае "" и "", но в NET Framework 2.0 он был изменен, чтобы также включать в себя значения, сопоставленные с помощью () в Regex, поэтому вы увидеть «NewVar» и «40» вообще.
То, что вы искали, это Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать лишние пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
Разделите текст по образцу «[,;]», чтобы разделить текст запятыми или точками с запятой. В NET Framework 1.0 и 1.1 Regex.Split возвращал только разделенные значения, в данном случае "" и "", но в NET Framework 2.0 он был изменен, чтобы также включать в себя значения, сопоставленные с помощью () в Regex, поэтому вы увидеть «NewVar» и «40» вообще. То, что вы искали, это Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать дополнительные пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
Разделите текст по образцу «[,;]», чтобы разделить текст запятыми или точками с запятой. В NET Framework 1.0 и 1.1 Regex.Split возвращал только значения разделения, в данном случае "" и "", но в NET Framework 2.0 он был изменен, чтобы также включать значения, сопоставленные с помощью () внутри Regex, поэтому вы увидеть «NewVar» и «40» вообще. То, что вы искали, это Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать лишние пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
Split вернул только значения разделения, в данном случае «» и «», но в NET Framework 2.0 он был изменен, чтобы также включать значения, соответствующие () в регулярном выражении, поэтому вы видите «NewVar» и «40» в все. Вы искали Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать дополнительные пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
Split вернул только значения разделения, в данном случае «» и «», но в NET Framework 2.0 он был изменен, чтобы также включать значения, соответствующие () в регулярном выражении, поэтому вы видите «NewVar» и «40» в все. Вы искали Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать дополнительные пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
То, что вы искали, это Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать дополнительные пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
То, что вы искали, это Regex.Match
, а не Regex.Split
. Он будет делать именно то, что вы хотите:
var r = new Regex(@"^(\w+)=(\d+)$");
var match = r.Match(command);
var varName = match.Groups[0].Value;
var valueText = match.Groups[1].Value;
Обратите внимание, что RegexOptions.IgnorePatternWhitespace означает, что вы можете включать дополнительные пробелы в свой шаблон - это не имеет ничего общего с совпадающим текстом. Поскольку в вашем шаблоне нет лишних пробелов, он не нужен.
Из документов , Regex.Split ()
использует регулярное выражение в качестве разделителя для разделения. Он не отделяет захваченные группы от входной строки. Кроме того, IgnorePatternWhitespace
игнорирует неэкранированные пробелы в вашем шаблоне, а не ввод.
Вместо этого попробуйте следующее:
var r = new Regex(@"\s*=\s*");
var mc = r.Split(command);
Обратите внимание, что пробелы фактически используются как часть разделителя.