![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Регулярные выражения нужны далеко не всегда. Часто нужно работать просто с текстовыми строками. И хотелось бы - не утыкаными обратными слешами.
Логично иметь разные классы для просто текста и текста, включающего регулярные выражения. Но что-то ничего похощего я не нашел. Подскажите, пожалуйста, чего я не понимаю. Как заблокировать регулярные выражения? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А конкретнее можно ? Тебе нужны простые способы работы со строками ?
|
|||
|
||||
| _Y_ |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Что уж конкретнее, чем вопрос "Как запретить регулярные выражения?" Простые способы? Наверное да, нужны. Простые и удобные. ЗЫ: Пример, обойти который я не смог: Чтобы передать в SQL апострофы, надо вставить перед ними обратные слеши:
Правда, глаза радует? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
||||
|
|||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Вот прямо по два слэша? Ужас. В принципе, написать свой заменитель подстрок в строке без использования регулярных выражений недолго. Только вот он тебе не поможет. Потому что в replaceAll() регулярное выражение одно и оно у тебя равно "'". То есть строка из одного символа. И никакого страшного синтаксиса регулярок тут не видно. Другое дело, что строка замены у тебя содержит обратные слеши. Но она-то как раз является просто строкой, на которую будет производиться замена. Уж извините, но обратные слеши надо эскейпить. Это вам не шарп, где можно игнорировать эскейп-последовательности. И не РНР, где можно строку заключить в апострофы вместо кавычек. P.S. Если я тебя не так понял, то объясни более корректно, ибо в данный момент понимание описания проблемы у меня однозначное. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
ИМХО придирки...
-------------------- |
|||
|
||||
| _Y_ |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Ставим эксперимент
Получаем результат:
Так в том и вопрос - нельзя ли это обойти. ИМХО PHP язык неудобмый, но наличие разных обозначений для строк и регулярных выражений - достоинство.
Проблемы нет. Есть неудобство. Это же все равно как убрать из Виндов Notpad потому, что там есть MS Word. ЗЫ: Пожалуйста, не уличайте меня больше в грехе нелюбви к регулярным выражениям вообще и к слешам, в частности. Елси нет возможности работаты с простым текстом - ну и ладно. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
||||||||||
|
|||||||||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Повторяю - нет. Нет. И ещё раз - нет. Для обозначения строк в жабе есть только кавычки. Нет, ну если есть желание поизвращаться, то обойти, конечно, можно. Например, напиши текстовый файл с нужными тебе строками и читай строки из него. Эскейпить лишний раз не придётся - слеши при загрузке строки сами "отэскейпятся".
Из пушки по воробьям. Ворд пользовать для всего неудобно. Так что сравнение фиговое.
Хм... проверил твой пример. Действительно, при замене подстрока-заменитель не удваивает, а учетверяет слеши. К чему бы это... В твоём случае можно написать небольшой класс, который будет заменять в строке просто апострофы на апострофы со слешами. Думаю, тогда и без такой оравы слешей обойтись можно будет. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| _Y_ |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Печально. Но отрицательный ответ это ответ. Спасибо.
Никакого такого желания- Есть желание работать удобнее, а понятие удобнее - антоним понятию извращаться. А зачем мне класс замены апострофов? Я уже написал четыре слеша Это сообщение отредактировал(а) _Y_ - 15.5.2007, 16:15 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Можно только так:
Компилятор складывает строковые константы на этапе компиляции, поэтому потери эффективности не будет |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |