string st = Convert.ToString(Regex.Match(str, "id=\"user_online\">\\d*").Groups[0]);
Как получить отсюда значение \d*?
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);
Надежный способ получения части совпадения - именованные группы:
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 регулярными выражениями - плохая идея. Есть гораздо более простые способы извлечь значения из тэгов.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
На просторах интернета нашёл код, который визуализирует графыВот пост на хабре - https://habrahabr
Нужно распечатать приходно-кассовый ордервзял панель, присвоил ей bg-image и задал ей размеры листа А4
Доброго времени суток, знатоки! Сделала авторизацию с сессией на php, в приложении пытаюсь отправить post запрос на сервер, для авторизацииПодскажите,...