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

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

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

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

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

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

Подскажите, что с ней не так?
PS: изначально искал помощь и получил ее в разделе php. Собственно там мне и помогли, но портировать под c# я ее не смог. Вот тема - ошибка в регулярке
Миниатюры
Портирование регулярки  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2017, 23:34
Ответы с готовыми решениями:

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

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

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

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

1
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
28.03.2017, 07:15 2
Лучший ответ Сообщение было отмечено 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
28.03.2017, 07:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2017, 07:15
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru