Как получить отсюда значение \d*?

205
17 августа 2017, 19:58
 string st = Convert.ToString(Regex.Match(str, "id=\"user_online\">\\d*").Groups[0]);

Как получить отсюда значение \d*?

Answer 1
const int wholePhraseGroupIndex = 0;
const int numberGroupIndex = 1;
// Комилируем регулярное выражение для ускорения поиска
Regex regex = new Regex("id=\"user_online\">(\\d+)", RegexOptions.Compiled);
// Сравниваем строку с паттерном
Match match = regex.Match(str);
// Проверяем, что строка совпала
if (!match.Success)
    throw new FormatException("Строка имеет неверный формат: " + str);
// Извлекаем содержимое скобок
string numberStr = match.Groups[numberGroupIndex].Value;
// Парсим значение
int number = int.Parse(numberStr, CultureInfo.InvariantCulture);
Answer 2

Надежный способ получения части совпадения - именованные группы:

var str = "id=\"user_online\">33";
var match = Regex.Match(str, "id=\"user_online\">(?'usersCount'\\d*)");
if (match.Success)
{
    var usersCount = match.Groups["usersCount"].Value; // "33"
}

Альтернативный вариант - использование механизма positive lookbehind. В вашем случае - поиска таких \d*, перед которыми стоит тэг:

var match = Regex.Match(str, "(?<=id=\"user_online\">)\\d*");
if (match.Success)
{
    var usersCount = match.Value; // 33
}

Ну или можно обернуть \d* в скобки и достать Groups[1], но этот подход может поломаться при переписывании регулярки в будущем.

Не забывайте, что парсить HTML регулярными выражениями - плохая идея. Есть гораздо более простые способы извлечь значения из тэгов.

READ ALSO
Визуализация графов

Визуализация графов

На просторах интернета нашёл код, который визуализирует графыВот пост на хабре - https://habrahabr

315
Печать panel c#

Печать panel c#

Нужно распечатать приходно-кассовый ордервзял панель, присвоил ей bg-image и задал ей размеры листа А4

234
Отправить post запрос с получением куки

Отправить post запрос с получением куки

Доброго времени суток, знатоки! Сделала авторизацию с сессией на php, в приложении пытаюсь отправить post запрос на сервер, для авторизацииПодскажите,...

180
Сравнение двух .txt

Сравнение двух .txt

Есть 1txt и 2

192