powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Regex
7 сообщений из 7, страница 1 из 1
Regex
    #38960026
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите написать regex, что-то подтупливаю.

Сам он работает, все хорошо: {\d}|{\d\[\d{0,}\,\d{0,}\]}

Мне нужно вытащить только числа из {\d} и {\d\
Я сам получаю значение вместе со скобками {}
...
Рейтинг: 0 / 0
Regex
    #38960103
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде разобрался. Один вопрос, почему тут {(\d)\[(\d{1,2})\,(\d{1,2})\]} 4 группы. Должно же быть 4.
У меня почему-то 2-я группа пустая
...
Рейтинг: 0 / 0
Regex
    #38960105
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Должно быть 3
...
Рейтинг: 0 / 0
Regex
    #38960184
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PavluhaДолжно быть 3

Вы не хотите явно прописать имена группам?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(?<duplicateWord>\w+)\s\k<duplicateWord>\W(?<nextWord>\w+)";
      string input = "He said that that was the the correct answer.";
      foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase))
         Console.WriteLine("A duplicate '{0}' at position {1} is followed by '{2}'.", 
                           match.Groups["duplicateWord"].Value, match.Groups["duplicateWord"].Index, 
                           match.Groups["nextWord"].Value);

   }
}
// The example displays the following output: 
//       A duplicate 'that' at position 8 is followed by 'was'. 
//       A duplicate 'the' at position 22 is followed by 'correct'.
...
Рейтинг: 0 / 0
Regex
    #38960263
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluhaпочему тут {(\d)\[(\d{1,2})\,(\d{1,2})\]} 4 группы.
Первая группа с индексом 0 будет соответствовать всему сматченному выражению. И три группы с индексами 1, 2, 3 - это указанные в выражении группы.
...
Рейтинг: 0 / 0
Regex
    #38961166
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvik,

Спасибо за ответ, вроде разобрался.
Есть еще один вопрос, не знаю реально ли такое.

Вот строка: const_{0}_{1[16,20]}_{2}_{3}\.txt

Вот таким регексом я вытаскиваю все параметры из строки: {(\d{1})}|{(\d{1})\[(\d{1,2})\,(\d{1,2})\]}
Все работает. Делается это для того, чтобы распарсить строку. String.Format не подошел, нет возможности substring делать.
Но после парсинга, мне нужно собрать строку к такому виду: сonst_{0}_{1}_{2}_{3}\.txt
Чтобы потом уже в коде сделать самому substring нужного параметра.

Вопрос: Как выцепить все константы после регекса и сформировать указанную строку?
...
Рейтинг: 0 / 0
Regex
    #38961302
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavluha,

Что-то получилось.
Почему данный регес ({(\d{1})})|({(\d{1})\[(\d{1,2})\,(\d{1,2})\]})|({(\d{1})(:\w+)}) не работает в .net, но работает при тестировании на сайте https://regex101.com
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Regex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]