Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 22.11.2018
Сообщений: 7

Объяснение шаблона регулярного выражения

04.06.2019, 15:35. Показов 1865. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите, пожалуйста, у меня есть регулярное выражение, которое нашла здесь же на киберфоруме

Regex.Match(dataInt, @"(?<=<tag>)(.*)(?=</tag>)")

Объясните, пожалуйста, посимвольно, что здесь за что отвечает

Я попыталась найти объяснения (?<=<tag>) и (?=</tag>), но как-то непонятно совсем
(?<= часть выражения ) - Утверждение положительного просмотра назад нулевой ширины
(?= часть выражения ) - Утверждение положительного просмотра вперед нулевой ширины
А (.*) . – любой символ, кроме перевода строки и * - предыдущий символ повторяется 0 и более раз, насчет этого есть мысли, но не уверена, что правильные
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2019, 15:35
Ответы с готовыми решениями:

Генерация строк на основе шаблона регулярного выражения
Доброго времени суток. Есть проблемка с тем как на основе шаблона генерировать все возможные варианты строк. Шаблон строки задается в виде...

Приоритет регулярного выражения
Здравствуйте. Не могу решить одну проблему. Сделал регулярочку: public const string pattern3 = @&quot;(\)&quot;; Вылавливать она должна...

Обобщение регулярного выражения
Доброго времени суток! Как правильно научиться составлять регулярное выражение? Например, если надо найти номера строк в файле ,в...

4
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
04.06.2019, 15:43
Это поиск любого текста (любого набора символов), которые расположены между тегами <tag>этот текст будет найден</tag>
1
0 / 0 / 0
Регистрация: 22.11.2018
Сообщений: 7
04.06.2019, 15:46  [ТС]
Спасибо, но я понимаю, как это работает, мне нужен конкретно разбор каждого символа или как это можно объяснить (препод до*бистый)
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
04.06.2019, 16:04
Цитата Сообщение от Odeeon Посмотреть сообщение
мне нужен конкретно разбор каждого символа или как это можно объяснить
сайты аля regex101 по кирпичикам раскладывают любое выражение, которое на них написать. с текстовыми пояснениями каждого элемента и подсветкой синтаксиса
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
04.06.2019, 16:36
Лучший ответ Сообщение было отмечено Odeeon как решение

Решение

Хм, даже не знаю как правильнее, но допустим так:

(?<=часть выражения)
?<= находит всё, что идёт после часть выражения, не включая часть выражения в результат.
Например хотим найти первую цифру, которая идёт сразу после слова Odeeon. Нам нужно (?<=Odeeon)\d
То-есть (?<=Odeeon)\d найдёт любую одну цифру, которая идёт сразу после слова Odeeon, например выделено то, что найдёт
Odeeonka23 - после Odeeon нет цифры, ничего не найдёт
Odeeon18 - после Odeeon есть цифры, но берёт только первую как в условии (\d)
Odeeon 18 - после Odeeon идёт знак пробела, а не цифра, ничего не найдёт
Odeeon8e - после Odeeon есть одна цифра

.*
Символ точки означает любой знак, кроме перевода строки, а символ * означает, что предыдущий символ перед ним, может повторяться 0 или более раз. Грубо говоря это означает "любое скопление символов (кроме перевода строки)". Если там встретиться символ перевода строки, то поиск окажется проваленным и ничего не вернётся.

(?= часть выражения )
Это тоже самое, что и первое пояснение, только ищет не после часть выражения, а до неё.

Грубо говоря - если между березой и сосной есть только яблоки и груши, то верни их мне, иначе ничего не возвращай.

(?<=береза)(только яблоки или груши)(?=сосна)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2019, 16:36
Помогаю со студенческими работами здесь

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

Упрощение регулярного выражения
Добрый день. Необходимо вытащить некоторые данные, далаю это так: string raw =...

Выделения переменной из регулярного выражения
Есть патерн для регулярного выражения: @&quot;\d*ln\(\d*x\)&quot; (Он находит выражения типа aln(bx)) Как из этого с помощью этого регулярного...

Ошибка в работе регулярного выражения
richTextBox2.Invoke((MethodInvoker)delegate { textSpam = richTextBox2.Text; }); if (checkBox16.Checked) { ...

Принцип действия регулярного выражения
Здравствуйте! Подскажите, пожалуйста, почему если применить регулярное выражение: @&quot;\s\S&quot;, к строке &quot;int __ctr&quot;,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru