Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
.NET 5

Найти количество совпадений и взять из них данные в строке

28.12.2020, 22:20. Показов 2837. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть строка, которая постоянно изменяется.
Эта строка может содержать разное количество под строк "identifier":"(.*?)"

Мне нужно найти количество таких совпадений (это я и сам могу) и взять набор символов, которые находится в маске (.*?)

Проблема в том, чтобы взять набор символов (без пробелов) из этой маски в каждом таком совпадении.

Моя маска (может не так называется) -- (.*?)
Моя под строка -- "identifier":"(.*?)"

Чтобы сформировать входную строку достаточно сделать так :
"identifier":"454erefF66", "identifier":"87878dfdfdG", "identifier":"dfd5668d" и так далее
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.12.2020, 22:20
Ответы с готовыми решениями:

Найти количество предложений в строке, и количество слов в каждом из них
Найти количество предложений в строке и количество слов в каждой из них.

Количество найденных совпадений в строке
Добрый день. Как можно подсчитать количество найденных совпадений в той или иной строке? Скажем, у нас есть слово Hello и нам надо...

Сравнить два бинарных файла и вывести в label количество не совпадений, или что нет не совпадений
Добрый день ! Прошу помощи в реализации задачи. В программе нужно сравнить два файла (разной длины, или одинаковой). Количество...

12
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
28.12.2020, 23:17
Лучший ответ Сообщение было отмечено Leopold95 как решение

Решение

Leopold95, речь о регулярках?
C#
1
2
string text = "\"identifier\":\"454erefF66\", \"identifier\":\"87878dfdfdG\", \"identifier\":\"dfd5668d\"";
string[] identifiers = Regex.Matches(text, "\"identifier\":\"(.*?)\"").Cast<Match>().Select(m => m.Groups[1].Value.Trim()).ToArray();
P.S. Входная строка напроминает JSON. Надеюсь вы в курсе что для работы с ним лучше использовать специализированные библиотеки.
1
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
28.12.2020, 23:29  [ТС]
Да, Вы правы эту строку я получаю в JSON, но выводится она как обычная строка
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
28.12.2020, 23:50
Leopold95, неважно как она выводится. Важно что это JSON. Берите библиотеку Json.Net и парсьте с её помощью.
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
29.12.2020, 11:22  [ТС]
OwenGlendower, Я задам максимально тупой вопрос:
А какой в этом смысл? Если и так все замечательно работает(благодаря Вам тоже)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
29.12.2020, 11:43
Leopold95, сейчас работает, а завтра нет. Скажем из-за замены двойных кавычек на одинарные. Решение с JSON.Net или другой JSON библиотекой гораздо более надежно в этом плане.
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
29.12.2020, 11:56  [ТС]
OwenGlendower, Окей, допустим.
Можете мне посоветовать как мне правильно гуглить, чтобы я смог найти решение моего первого вопроса? Типо, чтобы я смог сделать тоже самое, что Вы со строками, только с JSON'ом
0
Эксперт .NET
 Аватар для Usaga
14136 / 9359 / 1350
Регистрация: 21.01.2016
Сообщений: 35,174
29.12.2020, 14:29
Leopold95, на самом деле тут всё просто: создаёте класс (или набор классов) описывающих ваш JSON. Десериализуете JSON в этот класс \ коллекцию классов. И уже с нормальными классами работаете.

Что-то конкретное сказать не можно, структура JSON-документа нам не известна.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
29.12.2020, 15:14
Цитата Сообщение от Leopold95 Посмотреть сообщение
как мне правильно гуглить, чтобы я смог найти решение моего первого вопроса?
parse JSON c#. Запрос рано или поздно выедет вас на вышеупомянутую библиотеку Json.Net и её документацию.
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
29.12.2020, 15:28  [ТС]
OwenGlendower, Окей
Можете ещё сказать как именно называется , то что я хочу сделать? И то что вы уже сделали
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18270 / 14193 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
29.12.2020, 15:30
Leopold95, парсинг JSON это называется. Десериализацией также можно назвать.
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 19
29.12.2020, 21:59  [ТС]
OwenGlendower, Спасибо!
Но как мне использовать одинаковые данные, как выше, чтобы получить список чего-то с одинаковыми атрибутами

Добавлено через 1 минуту
OwenGlendower,
Либо у меня автоматом будет ошибка и мне нужно заранее создать массив?

Добавлено через 8 минут
OwenGlendower,

А еще как мне узнать количество совпадений? То-есть как мне узнать количество тех или иных данных?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16123 / 11247 / 2888
Регистрация: 21.04.2018
Сообщений: 33,074
Записей в блоге: 2
02.01.2021, 01:03
Leopold95, точно ответить на ваши вопросы, не видя полного JSON - нельзя.
Выложите его.
По JSON можно автоматически создать нужную структуру классов.
В том числе средствами Студии: Пример создания приложения для тестирования [WPF, Элд Хасп]
На видео получение классов для XML, но для JSON - совершенно идентично.

Получив классы для десериализации, вы можете десериализовать свой JSON в них.
Одинаковые значения identifier скорее всего будут значением свойства с таким именем элементов какой-то коллекции.
Посчитать их количество пройдясь по коллекции можно LINQ или другими способами.
Не думаю, что после десериализации могут возникнуть какие-то сложности с этим.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2021, 01:03
Помогаю со студенческими работами здесь

Найти больше всего совпадений в тексте (строке)
Привет Всем. Помогите решить вопрос. Буду очень благодарен. Есть некоторый текст в файле 1.txt . Нужно найти в нем текст, который...

В строке найти все индексы совпадений с указанным символом
1. Пользователь вводит отдельно строку и символ, необходимо показать на экран номера по порядку всех совпадений (нумерация с единицы). ...

Найти количество совпадений
Вопрос такой - в какое количество магазинов была отправлена продукция 20.03.2013 . Я упростил таблицу, чтобы лишние данные глаза не...

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

Массивы, найти большее количество совпадений
Дан массив А размером , заполненный рандомно от А до C. Нужной вывести на экран, ту букву которая имеет больше всех совпадений, если таких...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru