+  HandyCache форум
|-+  Главная категория» Общие вопросы» Работа "пробела" в регэкспах
Имя пользователя:
Пароль:
Страниц: [1] 2  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Работа "пробела" в регэкспах  (Прочитано 12060 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« : 04 июня 2007, 19:45:59 »

Каким образом обрабатывается пробел в правилах?
Захожу в тренажер.
Правило "а б". Входная строка "аб". Результат "аб". Ожидал "".
Правило "а б". Входная строка "а б". Результат "". Ожидал "а б".
Баг или ожидал неправильно?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 04 июня 2007, 20:59:52 »

Каким образом обрабатывается пробел в правилах?

По многочисленным просьбам "трудящихся" из правила выбрасываются все пробелы перед его проверкой по URL. Следовательно, правило "а б" = правило "аб".

P.S. Из URL пробелы не выбрасываются. Собственно, в явном виде их там быть и не может...

P.P.S. Если пробел в правиле жизненно необходим, то пиши его так: "а\sб"...
« Последнее редактирование: 04 июня 2007, 21:03:58 от DenZzz » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #2 : 04 июня 2007, 21:02:31 »

Баг или ожидал неправильно?
Второе. К твоим услугам опция "х" и метасимвол "\s"
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #3 : 04 июня 2007, 21:26:32 »

Неплохо б это добавить к документации. Есть еще аналогичные вещи?
Чем продиктованы "многочисленные просьбы трудящихся"?
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #4 : 04 июня 2007, 21:34:48 »

Есть еще аналогичные вещи?
Что есть "аналогичные"?
Цитировать
Чем продиктованы "многочисленные просьбы трудящихся"?
См. топик на руборде
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #5 : 04 июня 2007, 21:36:48 »

Что есть "аналогичные"?
Модификации строки правила/входной строки. Об этом вроде речь.
Цитировать
См. топик на руборде
Лучше сам поясни
« Последнее редактирование: 04 июня 2007, 21:47:08 от Михаил » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #6 : 04 июня 2007, 21:40:20 »

Модификации строки правила/входной строки
А где здесь модификация строки? Непонимаю Всё строго в соотв. с Perl'ом... Показывает язык Может, ты имеешь в виду - какие опции (модификаторы) включены по-умолчанию?
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #7 : 04 июня 2007, 21:50:02 »

А где здесь модификация строки? Непонимаю Всё строго в соотв. с Perl'ом... Показывает язык Может, ты имеешь в виду - какие опции (модификаторы) включены по-умолчанию?
Да, что еще из этого не описано в документации?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #8 : 04 июня 2007, 21:57:15 »

Неплохо б это добавить к документации.

В какое место? Если и добавлять, то в Документацию по написанию правил в формате RegExp, но я писать сей обширный эпос не возьмусь! Вот когда найдется доброволец... Прикольно

Цитировать
Есть еще аналогичные вещи?

Да, например:
- Регистр символов не имеет значения
- Перед проверкой правил во всех списках, кроме А и У, из URL отбрасываются лидирующие http://www.

Цитировать
Чем продиктованы "многочисленные просьбы трудящихся"?

Во-первых, граблями, на которые многие наступали из-за неразличимых пробелов в начале/конце/середине правила.
Во-вторых, пробелами можно выделять синтаксис.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #9 : 04 июня 2007, 22:02:22 »

В какое место?
В ФАК после вопроса "Что такое Регулярные выражения (RegExp)?"
Второе. К твоим услугам опция "х" и метасимвол "\s"
\s - это не эквивалент пробела. Другое дело, что применительно к URL-ам это не актуально.
Как ты указываешь модификаторы в НС?
« Последнее редактирование: 04 июня 2007, 22:17:29 от Михаил » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #10 : 04 июня 2007, 22:08:10 »

Регистр символов не имеет значения
Это есть опция-модификатор "i", но афаик, это работает только на латинице...
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #11 : 04 июня 2007, 22:29:31 »

В ФАК после вопроса "Что такое Регулярные выражения (RegExp)?"

ФАК создан для новичков, для которых и освоение RegExp часто невыполнимая задача! Забивать им голову пробелами, регистрами и т.д. в правилах, ИМХО, не гуманно!
К тому же, ты первый, кто спросил про "пробелы"! Так что, этот вопрос не такой уж и "частый"!

Это есть опция-модификатор "i", но афаик, это работает только на латинице...

В HC работает и на кириллице!
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #12 : 04 июня 2007, 22:35:07 »

К тому же, ты первый, кто спросил про "пробелы"! Так что, этот вопрос не такой уж и "частый"!
А "многочисленные просьбы трудящихся"? Они ж про пробел с твоих слов и были.
Не радует, что в программе существуют примеры выясняемого случайно и не описанного в документации поведения. Понятно, что полноценную документацию написать нелегко. Но почему ФАК позиционируется только для новичков? Можно сделать отдельный раздел и тонкие моменты туда выносить по ходу пьесы. И не накладно, и для будущего составителя документации подспорье, и пользователям приятно. И пусть это будет АК, а не ФАК.
« Последнее редактирование: 04 июня 2007, 22:42:05 от Михаил » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #13 : 04 июня 2007, 22:43:24 »

В HC работает и на кириллице
И вправду работает! :Улыбка Что ж, неплохой стал быть парсер в этой реализации RegExpEngine Отлично!
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #14 : 04 июня 2007, 23:00:46 »

А "многочисленные просьбы трудящихся"? Они ж про пробел с твоих слов и были.

Кто просил, те знают! А новички об этом почему-то не спрашивают...

Цитировать
Не радует, что в программе существуют примеры выясняемого случайно и не описанного в документации поведения.

В этот момент я обычно предлагаю недовольным читателям самим написать или дополнить существующую Документацию (ФАК) по HC и они почему-то быстро "остывают"... Помнится, Rick даже хотел прикрутить к Документации что-то вроде Wiki...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #15 : 05 июня 2007, 00:22:35 »

В этот момент я обычно предлагаю недовольным читателям самим написать или дополнить существующую Документацию (ФАК) по HC и они почему-то быстро "остывают"...
Видимо, знаешь, что я напишу, а вставлять в ФАК не хочешь. Может поэтому не предложил на этот раз? Подмигивающий
Дополни Документацию (ФАК) следующим:
Цитировать
Возможно ли применение при написании правил модификаторов Perl?

Нет. Однако необходимо учитывать, что к каждому правилу автоматически применяются следующие модификаторы:
  - игнорирование пробелов (имеются в виду "истинные" пробелы, а не метасимволы \s и пробелы, созданные через escape-последовательности).
    Например, "а   б" эквивалентно "аб";
  - игнорирование регистра (различия между заглавными и строчными буквами) как в латинице, так и в кириллице.
    Например, "фtДw" эквивалентно "ФTдW".
« Последнее редактирование: 05 июня 2007, 00:52:41 от Михаил » Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #16 : 05 июня 2007, 08:18:23 »

Возможно ли применение при написании правил модификаторов Perl?
Нет.
Мдя... Ну и с чего ты взял, что "нет"? Как раз, именно "да"! Я для чего тебе написал
...К твоим услугам опция "х"...
Используй конструкцию (?опции:выражение)

DenZzz, а не напрасно ли Михаил разместил этот топик в ветке "Бета-тест"? Может, перенесёшь в "Общие"?
« Последнее редактирование: 05 июня 2007, 08:43:18 от NothingAnother » Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #17 : 05 июня 2007, 09:04:59 »

Дополни Документацию (ФАК) следующим:

Добавил в ФАК к существующему вопросу, подправив преамбулу.

DenZzz, а не напрасно ли Михаил разместил этот топик в ветке "Бета-тест"? Может, перенесёшь в "Общие"?

О.К.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #18 : 05 июня 2007, 09:11:08 »

Мдя... Ну и с чего ты взял, что "нет"?
С твоего молчания в ответ на соответствующий вопрос.
Добавил в ФАК к существующему вопросу, подправив преамбулу.
Спасибо.
« Последнее редактирование: 05 июня 2007, 09:27:24 от Михаил » Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #19 : 05 июня 2007, 11:13:28 »

Если и добавлять, то в Документацию по написанию правил в формате RegExp, но я писать сей обширный эпос не возьмусь! Вот когда найдется доброволец... Прикольно
Не нужно обширного эпоса. Нужны азы для масс - самые общеупотребимые случаи.

Помнится, Rick даже хотел прикрутить к Документации что-то вроде Wiki...
На этом хостинге Wiki не будет. Не потянет. С декабря обещают обновление PHP и MySQL, полгода прошло - воз и ныне там.

Сообщить модератору   Записан
Страниц: [1] 2  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: