Проблема формата C # Regex - PullRequest
0 голосов
/ 13 января 2010

У меня есть следующая информация в файле конфигурации:

Begin  
0  
0  
13  
44  
59  
047  
8784  

Я читаю эту информацию и массу другой информации из файла конфигурации в виде l.

Мое регулярное выражение:

string points = points = Regex.Match(l, @"BEGIN\r\n(\d+)$").Groups[1].Value;

возвращается ""

Где я ошибаюсь с этим регулярным выражением?

Реальное решение удалить $:

string points = points = Regex.Match(l, @"POINTS\r\n(\d+)").Groups[1].Value;

Ответы [ 2 ]

0 голосов
/ 14 января 2010

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

(whatever we want)
BEGIN
0

$ соответствует концу вашего ввода.Также обратите внимание на регистр «BEGIN» - если вы явно не передаете RegexOptions.IgnoreCase, ваше регулярное выражение будет чувствительно к регистру

0 голосов
/ 13 января 2010

Символ $ обозначает конец строки, однако вы выполняете многострочное регулярное выражение. Я подозреваю, что именно поэтому удаление $ решает проблему.

Попробуйте передать третий необязательный параметр для RegexOptions и укажите MultiLine

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...