Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Заблокирован
1

Регулярки: ищу учебник

29.12.2015, 10:05. Просмотров 1065. Ответов 15
Метки нет (Все метки)

есть ли где то не просто справочник по конструкциям регулярок, но учебник полноценный? не только с примерами, но и с задачами с описанным решением? а то прям ну никак не могу въехать в них, очень сложно
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2015, 10:05
Ответы с готовыми решениями:

Регулярки
Прошу помощи, не могу понять как правильно написать регулярку на парсинг строк Имеем вот такую...

Регулярки
Народ,помогите кто чем как говориться,пишу парсер,никак не могу посреди ночи темной додумать как...

Опять регулярки
Есть строка из неё надо спарсить значения, вот строка: Я составил такую регулярку: string...

StringBuilder и регулярки
Подскажите, можно ли на StringBuilder использовать RegEx.Replace? Если да, то как?

15
Эксперт .NET
14100 / 10796 / 2852
Регистрация: 17.09.2011
Сообщений: 18,295
29.12.2015, 10:10 2
Очень хороший онлайн-справочник: http://www.regular-expressions.info/
Там же в верхней менюшке есть Book Reviews с указанием книг по теме.
1
TheGreatCornholio
1226 / 707 / 282
Регистрация: 30.07.2015
Сообщений: 2,385
29.12.2015, 10:16 3
Насчет учебника не подскажу, но мне эти материалы нравятся.
Регулярные выражения FAQ
http://www.exlab.net/tools/sheets/regexp.html
https://msdn.microsoft.com/ru-... .110).aspx

И в целом хороший сайт
http://metanit.com/sharp/tutorial/7.4.php
2
Заблокирован
29.12.2015, 10:44  [ТС] 4
как записать вот например несколько символов? т.е. например выражение вида "123.4567.78901", так то '\d', но как я понял это один символ, а если я не знаю сколько надо символов заранее? как это записать?
0
431 / 399 / 110
Регистрация: 05.01.2010
Сообщений: 1,676
29.12.2015, 10:47 5
Volrajas, \d+ вроде бы
1
Заблокирован
29.12.2015, 10:50  [ТС] 6
я хочу спарсить с сайта 2ip.ru свой ip, такая регулярка "<big id="d_clip_button">\\d+\\.\\d+\\.\\d+\\.\\d+</big>" находит мне все это выражение, вместо того чтобы выдать только ip, в чем проблема???
0
TheGreatCornholio
1226 / 707 / 282
Регистрация: 30.07.2015
Сообщений: 2,385
29.12.2015, 10:51 7
C#
1
string pattern = @"^\d+\.\d+.\d+$";
^ - начало строки - это может быть важным.
\d+ - собираем цифры пока они есть.
\. - точка.
$ - конец строки - это может быть важным.
0
Эксперт .NET
14100 / 10796 / 2852
Регистрация: 17.09.2011
Сообщений: 18,295
29.12.2015, 10:52 8
Цитата Сообщение от Volrajas Посмотреть сообщение
как записать вот например несколько символов? т.е. например выражение вида "123.4567.78901", так то '\d', но как я понял это один символ, а если я не знаю сколько надо символов заранее? как это записать?
\d{2} — две цифры
\d{2, 5} — от двух до пяти цифр
\d{2,} — как минимум две цифры
\d+ — все подряд идущие цирфы, то же самое, что \d{1,}
\d? — 0 или одна цифра, то же самое, что \d{0, 1}
\d* — 0 или более цифр, то же самое, что \d{0,}
0
TheGreatCornholio
1226 / 707 / 282
Регистрация: 30.07.2015
Сообщений: 2,385
29.12.2015, 10:53 9
Цитата Сообщение от Volrajas Посмотреть сообщение
вместо того чтобы выдать только ip
Это полное совпадение, если хочешь выделить IP адрес - используй скобки для группирования,
и из Regex получи Groups[1], Groups[0] - будет полным совпадением, а Groups[1] айпишником.
0
Заблокирован
29.12.2015, 10:54  [ТС] 10
Woldemar89, не помогло, так вообще ничего не находит
0
TheGreatCornholio
1226 / 707 / 282
Регистрация: 30.07.2015
Сообщений: 2,385
29.12.2015, 10:55 11
А вообще, в парсинге html лучше HtmlAgilityPack использовать, а регурярками его дополнять, так сказать.
0
Заблокирован
29.12.2015, 10:57  [ТС] 12
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Это полное совпадение, если хочешь выделить IP адрес - используй скобки для группирования,
и из Regex получи Groups[1], Groups[0] - будет полным совпадением, а Groups[1] айпишником.
че за Groups еще? скобки не помогают, все равно находит только все выражение

Добавлено через 47 секунд
Цитата Сообщение от Woldemar89 Посмотреть сообщение
А вообще, в парсинге html лучше HtmlAgilityPack использовать, а регурярками его дополнять, так сказать.
мне надо спарсить чисто ip, больше мне ничего не надо, нафига мне подключать для этого целый HtmlAgilityPack?
0
TheGreatCornholio
1226 / 707 / 282
Регистрация: 30.07.2015
Сообщений: 2,385
29.12.2015, 11:00 13
Лучший ответ Сообщение было отмечено Volrajas как решение

Решение

Цитата Сообщение от Volrajas Посмотреть сообщение
не помогло
Разбирайся

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
 
            string htmlCode;
            string pattern = @"<big id=""d_clip_button"">(\d+\.\d+\.\d+\.\d+)</big>";
 
 
 
            using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
            {
               
               htmlCode = client.DownloadString("https://2ip.ru/");
                
            }
 
            string ip = Regex.Match(htmlCode,pattern).Groups[1].Value;
 
            Console.WriteLine(ip);
 
            Console.ReadKey();
 
        }
    }
}
2
Заблокирован
29.12.2015, 11:05  [ТС] 14
Цитата Сообщение от Woldemar89 Посмотреть сообщение
C#
1
@"<big id=""
черта с два, а я не знал как заэкранировать кавычки когда юзаешь @, вроде работает спасибо
0
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
29.12.2015, 11:29 15
Цитата Сообщение от Woldemar89 Посмотреть сообщение
(\d+\.\d+\.\d+\.\d+)
([0-9.]+)

Все равно html тег точно укажет где искать.
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
29.12.2015, 22:17 16
Есть такой простой и небольшой учебник для начала: Бен Форта, "Регулярные выражения. 10 Минут на урок"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2015, 22:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Портирование регулярки
Здравствуйте! Есть одна регулярка, которую мне помог написать один хороший человек. Она...

Регулярки, запретить вложенность
Добрый день. Например, есть текст string Text = &quot;start первая регулярка end start вторая end...

Грамотное построение регулярки
Собственно сабж. До этого как-то особо этим не интересовался, находились другие дела, а тут прям...

Составление паттерна для регулярки
До последнего пытался справиться сам, но видимо не судьба... Пишу свой парсер математических...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.