![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Если у меня строка содержит символы русского английского алфавита и цифры, делать то то... Если нет, вызвать message box с сообщением и ввести символы заново. Как это реализовать попроще в c#?
Или прийдётся ввести в масив все нужные мне символы и буквы, а потом сверять их наличие в нужной мне строке? Это сообщение отредактировал(а) N1ko - 15.6.2009, 22:42 |
|||
|
||||
| Grok |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
что-то вроде этого:
только если strInput будет считываться с файла, то для конструктора StreamReader нужно будет указать соответсвенную кодировку, чтобы нормально работало с кирилицей, например:
|
||||
|
|||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Пробую использовать regex, но ничего не получается. Я хочу проверить строку на наличие исключительно цифр или букв. То есть если в строке будут символы типо запятой. точек и тп, строка буде не верной. А у меня сейчас програма проверяет строку на наличие указаных мной символов, но ей пофиг есть ли там пунктуационные знаки и тп. Как это записать? Через оператор ^ будет глуповато перечислять все ненужные мне символы.
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Цифры обозначаются так \d, буквы так [\w-[\d]]
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Так тоже пробовал. Но если в строку попадает какой нибуть пунктуационный знак и в тоже время в ней есть буквы и цифры, програма считает строку правильной... А мне надо что бы она ругалась, когда в строку попадают символы не относящиеся к алфавиту или пунктуационные знаки.
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Для символов, не относящихся к алфавиту есть спецсимвол \W. Точнее сказать это НЕ \w, а учитывая, что последний кроме алфавитных символов включает ещё и цифры, то неалфавит будет таким [\W\d]. И проверять надо при помощи функции IsMatch
Это сообщение отредактировал(а) diadiavova - 19.6.2009, 13:57 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Хорошо... Допустим я ввожу строку "qwerty;.,1" в текстовое поле. В данной строке присутствуют как символы алфавита, пунктуационные знаки так и цифры. Попробовал твой вариант, но программа пропускает этот случай и считает его правильным.(Хотя алфавит вроде бы и запрещён) Поскольку в строке есть всего лишь один разрешённый символ(цифра).
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Я не правильно написал, тут надо не проверять на соответствие, а проверять их количество
бывает Это сообщение отредактировал(а) diadiavova - 19.6.2009, 14:37 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Grok |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
N1ko, в коде что писал diadiavova
данный предикат есть true, если в строке встречается неалфавитный символ или цифра, соответственно в сроке "qwerty;.,1" их есть целых 4(";.,1"), при наличии хотя бы одного из них строка правильная, и если ты хочешь исключить в строке эти символы, тоесть строка была бы корректной, если они не встречаются, то соответствено
Это сообщение отредактировал(а) Grok - 20.6.2009, 00:55 |
||||
|
|||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Пишу вот такую строку
подразумевая под ней что моя строка может содержать буквы, цифры и знак пробела. НО не может содержать другие знаки:точки запятые и тп. Потом например ввожу следующую строку "sdf sdfg" Сообщение на окно не вылазит. Что я делаю не так. Уже всё перерыл в поисках ответа. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Это сообщение отредактировал(а) diadiavova - 12.9.2009, 14:25 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Попробовал твой ваиант Допустим ввожу строку "ffggr;;;ewqq", оно её принимает как правильную хотя поскольку здесь присутствуют точки с запятой, теоретически такого быть не должно
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
А что значит ^ и +$ в данном случае? Читал инфу по поводу этих знаков, но всё равно не очень понятно зачем они здесь
Это сообщение отредактировал(а) N1ko - 12.9.2009, 23:04 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Начало и конец проверяемой строки. Без них берётся только часть строки и выдаётся ответ, что типа соответствует, а та часть, где точки с запятой не учитывается. Эти значки показывают, что соответствие должно быть подтверждено ели только вся строка соответствует шаблону. Но их значение при однострочном и многострочном форматах немного отличается, но всё в документации есть. Добавлено через 7 минут и 46 секунд А да, только сейчас заметил. Плюсик показывает, что символ может встречаться один или более раз. Без него шаблон соответствует одному символу. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |