Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/43: Рейтинг темы: голосов - 43, средняя оценка - 4.86
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247

Проверка строки на содержание одинаковых символов

20.08.2012, 22:31. Показов 8625. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста, с чего начать...
Написал программу которая выбирает из файла слова по известным буквам, т.е. пользователь вводит:
по-а, где символ "-" заменяется любой буквой и программа выводит все возможные варианты, но дело в том, что слово "попа" (извините за пример), заведомо не подходит, т.к. символ "п" один в исходном слове,
а программа выдает и это слово... Писал при помощи регулярных выражений, но вот никак не додумкаю как же мне исключить слова с повторяющимися символами, если в исходном слове нет повторения?
Заранее огромное спасибо!
Вот кусок кода по формированию регулярного выражения и проверки:
Здесь формирую регулярку из разрешенных букв:
C# Скопировано
1
2
sPattern = textBox1.Text;
             string pPattern = sPattern.Replace("-", "[а-я]");
----------------------
Здесь формирую регулярку из запрещенных букв:
C# Скопировано
1
2
3
4
str = textBox2.Text;
            int i = str.Length + 2;
            str = str.Insert( 0, "[^");
            str = str.Insert( i, "]");
----------------------
Здесь проверяю и вывожу в форму:
C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (File.Exists(file))
                {
 
                    string[] lines = File.ReadAllLines(file, Encoding.UTF8);
                    foreach (string l in lines)
                    {
                        if (Regex.IsMatch(l, pPattern, RegexOptions.IgnoreCase))
                        {
                            if (Regex.IsMatch(l, str, RegexOptions.IgnoreCase))
                                myListBox.Items.Add(l);
                        }
                    }
                }
                else
                {
                    myListBox.Text = "Нет файла!";
                    return;
                }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2012, 22:31
Ответы с готовыми решениями:

Проверка строки на содержание ложных символов
Я ввожу строковую переменную и мне нужно проверить какие символы она в себе содержит. Если только цифры, то вывести любое сообщение, в...

Разбиение строки, и проверка каждой из подстрок на содержание определенных символов
Добрый день, друзья, надеюсь на вашу помощь. string number = (string) txtNumberCep.EditValue; string faset =...

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

6
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
20.08.2012, 23:32
Используй такой паттерн:

C# Скопировано
1
string pPattern = sPattern.Replace("-", String.Format("[а-я-[{0}]]",str.Replace("-","")));
1
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
21.08.2012, 00:21  [ТС]
К сожалению, не подходит... Ибо {n} это повторения подряд, а мне нужно что-бы слова в которых содержится повторный символ, но в слове содержится только один символ, исключались...
Но идея заслуживает внимания... Спасибо, главное я зацепил суть Вашей идеи)))...
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
21.08.2012, 00:26
... на примере "по-а" - данный паттерн выберет все слова, в которых "-" является любой буквой, кроме "п", "о" или "а" - если требуется не это, то я ничо не понял
1
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
21.08.2012, 00:33  [ТС]
Строка str просто содержит символы, которых не может быть в данном слове... Для чего Вы применяете
C# Скопировано
1
str.Replace("-", " ");
? В данной строке вообще нет и не может быть символа "-".
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
21.08.2012, 00:37
тю, мой косяк

C# Скопировано
1
string pPattern = sPattern.Replace("-", String.Format("[а-я-[{0}]]",sPattern.Replace("-","")));
я формирую паттерн [а-я-[поа]] ... последний Replace вставляет в точку {0} все символы слова за исключением "-" ... первый Replace вставляет полученный паттерн в слово вместо символа "-"
2
Просто интересуюсь.
 Аватар для Imitator
42 / 42 / 9
Регистрация: 19.10.2011
Сообщений: 247
21.08.2012, 00:42  [ТС]
Во чудеса!!!!)))) Вот так работает! Спасибо огромное!!!!)))
Блин, еще раз хочу поблагодарить!!!!)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2012, 00:42
Помогаю со студенческими работами здесь

Проверка строки на содержание одного из элементов массива?
Имеется строка, допустим strTemp с содержимым "AbCbc2 Wtc", а также массив - { "AbbCc", "AbCbc2", "CcCAb5" }. Можно ли как-то...

Для строки, состоящей из одинаковых символов, вывести только один такой
Есть строка stroka = "000000...." нужно написать фрагмент: if (stroka состоит из нулей) то вывести в textbox один 0

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

Проверка строки на наличие определенных символов
Есть строка символов, мне нужно проверить есть ли там цифры или другие ненужные символы. Заранее спасибо.

Проверка строки на вхождение любых символов, за исключением разрешенных
Корректная строка должна содержать только цифры(0-9), пробелы( ), запятые(,) и тире(-). Каким способом можно осуществить проверку на...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи будет иметь приблизительный результат вычисления для метода обработки данных из double buffering.
Hrethgir 10.04.2025
В продолжение Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу можно будет корректировать по ходу. Это потому что. . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер