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

Портирование регулярки

27.03.2017, 23:34. Показов 1096. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть одна регулярка, которую мне помог написать один хороший человек. Она прекрасно работает - https://regex101.com/r/8Fzyqc/2.
То есть у меня есть рекурсивная регулярка и все парсится нормально, но когда я это вставляю в си# -
1) Подсвечиваются ошибки в регулярке
2) А есть я ее немного изменю - @(?<m>\\w+)\\((?<d>(?:[^()]+|\\((?<m>)\\))*)\\)

Парсер видит только внутренние вхождения, а внешнее пропускает.
Например - @id1(@id2(Boom)) - id2 увидит и обработает, а внешний не видит.
Видимо, я не правильно поменял регулярку...

Подскажите, что с ней не так?
PS: изначально искал помощь и получил ее в разделе php. Собственно там мне и помогли, но портировать под c# я ее не смог. Вот тема - ошибка в регулярке
Миниатюры
Портирование регулярки  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2017, 23:34
Ответы с готовыми решениями:

Регулярки
Добрый день. Никак не соображу, как превратить &quot;\Fsimplex;\c204;\Q5;\W0.7;\T0.85;Test T\Fsimplex;\c0;-1&quot; в &quot;Test T-1&quot; ...

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

Регулярки: ищу учебник
есть ли где то не просто справочник по конструкциям регулярок, но учебник полноценный? не только с примерами, но и с задачами с описанным...

1
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
28.03.2017, 07:15
Лучший ответ Сообщение было отмечено Kertis138 как решение

Решение

Regex в .NET не поддерживает рекурсию (?R).
http://www.regular-expressions... curse.html

Добавлено через 1 час 6 минут
Кликните здесь для просмотра всего текста
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
    var text = @"
        dd @id1(Hello c @id2(Boom @id3(B d) daa) ada ) dad
@id2(Boom) @id2(Boom) 
    ";
 
    var rawPattern = @"
@\w+
 
(?<value>
    (
        (
            ( ?'Open'\( )
            [^()]*
        )+
        (
            ( ?'Close-Open'\) )
            (?(Open)[^()]*)
        )+
    )+
)
 
(?(Open)(?!))
";
    rawPattern = Regex.Replace(rawPattern, @"\s", "");
 
    var regex = new Regex(rawPattern, RegexOptions.Singleline);
 
    regex
        .Matches(text)
        .Cast<Match>()
        .Select(m => m.ToString() + " , value=" + m.Groups["value"].Value)
        .ToList()
        .ForEach(Console.WriteLine);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2017, 07:15
Помогаю со студенческими работами здесь

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

Портирование кода с c++ на c#
Добрый день! Помогите, пожалуйста, перевести на с# такой код#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

Регулярки - получение текста в тегах <a>
Нужно из &lt;a href=&quot;/types/random&quot;&gt;random&lt;/a&gt; вытащить random который как вы видите встречается 2 раза и как вы понимаете значение рандомно. ...

Ссылки и регулярки вечная проблема
Здравствуйте, есть ссылка следующего типа &lt;a href=&quot;/буковки/videos/циферки/какаятодичь&gt; нужно достать с этой ссылки буковки и циферки)....

Получить цитаты через регулярки
Считать текст из файла и вывести его на экран монитора только цитаты текста, то есть предложения, заключенные в кавычки.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru