Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формат строки, RegEx 
:(
    Опции темы
novichok84
Дата 23.2.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.2.2007

Репутация: нет
Всего: нет



Привет!

Друг мне посоветовал ваш форум.

В универе надо написатЬ задачку... 
И я споткнулся во на чем -> 

нужно получитЬ строку и проверитЬ соответстует ли она следующим правлам :

1) соодержит мин 1 маленЬкую букву  [a..z]
2) цоодержит мин 1 цифру [0..9]
3) Длинна строки мин 6 символов

Стыдно конечно... Но не знаю я синтаксис регЕх в ява... 

Спасибо.
PM MAIL   Вверх
LSD
Дата 23.2.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
String str = " d asd asd as9";
Pattern pattern = Pattern.compile("[a-z]|\\d");
Matcher matcher = pattern.matcher(str);
System.out.println(str.length() >= 6 && matcher.find());



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
novichok84
Дата 23.2.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.2.2007

Репутация: нет
Всего: нет



Супер! Спасибо smile 



А можно немного покоментироватЬ? 

Что означает "|" ? 

Тут естЬ система поощрения - "+" требуется LSD!

PM MAIL   Вверх
powerOn
Дата 23.2.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(novichok84 @  23.2.2007,  13:34 Найти цитируемый пост)
Тут естЬ система поощрения - "+" требуется LSD!


fixed.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LSD
Дата 23.2.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(novichok84 @  23.2.2007,  13:34 Найти цитируемый пост)
Что означает "|" ?

Или.

Вообще регулярки в Java, в большинстве своем совпадают с регулярками в Perl. Поищи по форуму книгу Дж. Фридл - Регулярные выражения.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
novichok84
Дата 23.2.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.2.2007

Репутация: нет
Всего: нет



Ето регулярное выражение работает не верно...

Например оно акцептирует строку "11111111111111" 
PM MAIL   Вверх
nornad
Дата 23.2.2007, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Держи выражение:
"([a-z].*\\d)|(\\d.*[a-z])"
Длину строки проверяй после. Хотя, нет - лучше до, ибо проверка на соответствие регулярному выражению куда тяжелее.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
novichok84
Дата 26.2.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.2.2007

Репутация: нет
Всего: нет



Супер! + for nornad !

А как сделатЬ так что бы строка еще ко всемы упомянутому не соодержала "не нормалЬные" символы :  '  "" ; . / ?  >  и прочие...

1) соодержит мин 1 маленЬкую букву  [a..z]
2) цоодержит мин 1 цифру [0..9]
3) Длинна строки мин 6 символов
+ выше упомянутое
PM MAIL   Вверх
nornad
Дата 26.2.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(novichok84 @  26.2.2007,  16:09 Найти цитируемый пост)
А как сделатЬ так что бы строка еще ко всемы упомянутому не соодержала "не нормалЬные" символы :  '  "" ; . / ?  >  и прочие...

Если тебе надо просто вырезать эти символы, то используй replaceAll.
Если же нужно именно проверить строку на содержание буквы и цифры и чтобы не было ненужных символов... Тут, имхо, придётся два раза проверять. Первый раз - проверяем по предыдущему шалбону. Второй раз - по шаблону "['\\";./?>]" (при добавлении символов не забывай про спецсимволы; например, "[" надо вставлять как "\\["). Если второй шаблон тоже подошёл, то в строке есть эти символы и она не подходит.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
nornad
Дата 28.2.2007, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Вот, нашёл способ сделать проверку за один проход:

Код

"^[^:';\\"./?>]*([a-z][^:';\\"./?>]*\\d)|(\\d[^:';\\"./?>]*[a-z])[^:';\\"./?>]*$"


Если надо добавить к исключению символы кроме тех, что ты указал, то измени все четыре класса символов [^:';\\"./?>], добавив нужные. И не забудь эскейпить служебные символы самих регулярных выражений.

Это сообщение отредактировал(а) nornad - 28.2.2007, 01:33


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.