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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение, исключить двойной символ # 
V
    Опции темы
Slanix
Дата 17.9.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем доброго времечки.
Подскажите регулярное выражение проверяющее двойной символ # в строке.
На подобии такого: [.[^\\*]]+
но надо еще и ##.
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
UnicornMirage
Дата 17.9.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

Pattern p = Pattern.compile("\\#{2}");


Это сообщение отредактировал(а) UnicornMirage - 17.9.2007, 14:14
PM MAIL   Вверх
Den1s
Дата 17.9.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Чтобы не создавать новую тему вот такой вопросик:

Необходимо сделать регулярку на дату, дата может быть следующих типов

Daily 18:00 19:00
Hol 18:00 19:00
Mon 19:00 20:00
12-31-2007 19:00 20:00


Я сделал 

[Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|[0-12]-[0-31]-\d{4}\s[0-23]:[0-60\s]\s[0-24]:[0-60]

Но оно не работает так как специфичная дата насколько я понимаю не правильно пристроена? подскажите плз как исправить?
PM MAIL   Вверх
solve
Дата 17.9.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



([Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|([0-12]-[0-31]-[1900-2007]))\s[0-23]:[0-60]\s[0-23]:[0-60]

как я понял, там где указывается дата, выбирается или точная дата или что-то типа Mon или Hol, поэтому в начале выбираем один из паттернов (это то что во внешних скобках). А дальше делаем как и было,только я исправил 0-24 в обном месте на 0-23 и немного изменил часть с годом,т.к у тебя можно ввести хоть 9999,что не есть гуд
PM MAIL   Вверх
Den1s
Дата 17.9.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Исправил в дополнение еще минуты, но все равно не работает:

([Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|([0-12]-[0-31]-[1900-2007]))\s[0-23]:[0-59]\s[0-23]:[0-59]


значение 'Daily 12:11 13:11' почему то инвалидное? и видимо пролетает на этой части - ...\s[0-23]:[0-59]\s[0-23]:[0-59]
причем если сделать регулярку ([Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|([0-12]-[0-31]-[1900-2007])).*  то все нормально
а если ([Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|([0-12]-[0-31]-[1900-2007]))\s[0-23].*  то уже ошибка:(

что это может быть? smile 
PM MAIL   Вверх
nornad
Дата 17.9.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



[0-12] - это символьный класс "от 0 до 1 и 2". Делай выводы.  smile

Добавлено через 3 минуты и 55 секунд
если упрощённо, то вот для формата времени:
Код

"\d{1,2}:\d{1,2}:\d{1,2}"

Но это выражение позволяет вводить и такое время: 79:34:82
Чтобы было проще понять, что делать, вот тебе выражение для 0-60:
Код

([0-5]?\d)


Добавлено через 6 минут и 47 секунд
Цитата(Den1s @  17.9.2007,  19:41 Найти цитируемый пост)
значение 'Daily 12:11 13:11' почему то инвалидное?

Потому что не соответствует твоему выражению. smile

Добавлено через 9 минут и 11 секунд
Кстати:
Код

([Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun]|...

Квадратные скобки здесь совершенно лишние. Рекомендую ещё раз внимательно почитать про регулярные выражения - налицо неверное понимание многих вещей.


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


Шустрый
*


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

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



Цитата(nornad @ 17.9.2007,  17:26)
Квадратные скобки здесь совершенно лишние. Рекомендую ещё раз внимательно почитать про регулярные выражения - налицо неверное понимание многих вещей.

если бы было верное понимание думаю я бы не задавал этот вопросsmile
спасибо за направление на верный путь, я понялsmile
PM MAIL   Вверх
Den1s
Дата 17.9.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот что получил в итоге, вроде работает)))

Код

(Daily|Hol|Mon|Tue|Wed|Thu|Fri|Sat|Sun|((0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d))\s(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))\s(([0-9])|([0-1][0-9])|([2][0-3])):(([0-9])|([0-5][0-9]))

PM MAIL   Вверх
nornad
Дата 17.9.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



0[1-9] - здесь я бы после нолика поставил вопросик, чтобы можно было вводить так:
а) 03-...
б) 3-...

Вместо [- /.](0[1-9]|[12][0-9]|3[01])[- /.] я бы поставил ([- /.])(0[1-9]|[12][0-9]|3[01])\4 чтобы можно было ввести 01-23-... или 01/23/..., но не 01-23/...

[0-9] однозначно лучше заменить на \d - это короче smile


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

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

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


 




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


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

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