Михаил
|
|
« : 04 июня 2007, 19:45:59 » |
|
Каким образом обрабатывается пробел в правилах? Захожу в тренажер. Правило "а б". Входная строка "аб". Результат "аб". Ожидал "". Правило "а б". Входная строка "а б". Результат "". Ожидал "а б". Баг или ожидал неправильно?
|
|
|
|
|
DenZzz
|
|
« Ответ #1 : 04 июня 2007, 20:59:52 » |
|
Каким образом обрабатывается пробел в правилах?
По многочисленным просьбам "трудящихся" из правила выбрасываются все пробелы перед его проверкой по URL. Следовательно, правило "а б" = правило "аб". P.S. Из URL пробелы не выбрасываются. Собственно, в явном виде их там быть и не может... P.P.S. Если пробел в правиле жизненно необходим, то пиши его так: "а\sб"...
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #2 : 04 июня 2007, 21:02:31 » |
|
Баг или ожидал неправильно? Второе. К твоим услугам опция " х" и метасимвол " \s"
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
Михаил
|
|
« Ответ #3 : 04 июня 2007, 21:26:32 » |
|
Неплохо б это добавить к документации. Есть еще аналогичные вещи? Чем продиктованы "многочисленные просьбы трудящихся"?
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #4 : 04 июня 2007, 21:34:48 » |
|
Есть еще аналогичные вещи? Что есть "аналогичные"? Чем продиктованы "многочисленные просьбы трудящихся"? См. топик на руборде
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
Михаил
|
|
« Ответ #5 : 04 июня 2007, 21:36:48 » |
|
Что есть "аналогичные"?
Модификации строки правила/входной строки. Об этом вроде речь. См. топик на руборде
Лучше сам поясни
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #6 : 04 июня 2007, 21:40:20 » |
|
Модификации строки правила/входной строки А где здесь модификация строки? Всё строго в соотв. с Perl'ом... Может, ты имеешь в виду - какие опции (модификаторы) включены по-умолчанию?
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
Михаил
|
|
« Ответ #7 : 04 июня 2007, 21:50:02 » |
|
А где здесь модификация строки? Всё строго в соотв. с Perl'ом... Может, ты имеешь в виду - какие опции (модификаторы) включены по-умолчанию? Да, что еще из этого не описано в документации?
|
|
|
|
|
DenZzz
|
|
« Ответ #8 : 04 июня 2007, 21:57:15 » |
|
Неплохо б это добавить к документации.
В какое место? Если и добавлять, то в Документацию по написанию правил в формате RegExp, но я писать сей обширный эпос не возьмусь! Вот когда найдется доброволец... Есть еще аналогичные вещи?
Да, например: - Регистр символов не имеет значения - Перед проверкой правил во всех списках, кроме А и У, из URL отбрасываются лидирующие http://www. Чем продиктованы "многочисленные просьбы трудящихся"?
Во-первых, граблями, на которые многие наступали из-за неразличимых пробелов в начале/конце/середине правила. Во-вторых, пробелами можно выделять синтаксис.
|
|
|
|
|
Михаил
|
|
« Ответ #9 : 04 июня 2007, 22:02:22 » |
|
В какое место?
В ФАК после вопроса "Что такое Регулярные выражения (RegExp)?" Второе. К твоим услугам опция "х" и метасимвол "\s"
\s - это не эквивалент пробела. Другое дело, что применительно к URL-ам это не актуально. Как ты указываешь модификаторы в НС?
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #10 : 04 июня 2007, 22:08:10 » |
|
Регистр символов не имеет значения Это есть опция-модификатор " i", но афаик, это работает только на латинице...
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
DenZzz
|
|
« Ответ #11 : 04 июня 2007, 22:29:31 » |
|
В ФАК после вопроса "Что такое Регулярные выражения (RegExp)?"
ФАК создан для новичков, для которых и освоение RegExp часто невыполнимая задача! Забивать им голову пробелами, регистрами и т.д. в правилах, ИМХО, не гуманно! К тому же, ты первый, кто спросил про "пробелы"! Так что, этот вопрос не такой уж и "частый"! Это есть опция-модификатор "i", но афаик, это работает только на латинице...
В HC работает и на кириллице!
|
|
|
|
|
Михаил
|
|
« Ответ #12 : 04 июня 2007, 22:35:07 » |
|
К тому же, ты первый, кто спросил про "пробелы"! Так что, этот вопрос не такой уж и "частый"!
А "многочисленные просьбы трудящихся"? Они ж про пробел с твоих слов и были. Не радует, что в программе существуют примеры выясняемого случайно и не описанного в документации поведения. Понятно, что полноценную документацию написать нелегко. Но почему ФАК позиционируется только для новичков? Можно сделать отдельный раздел и тонкие моменты туда выносить по ходу пьесы. И не накладно, и для будущего составителя документации подспорье, и пользователям приятно. И пусть это будет АК, а не ФАК.
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #13 : 04 июня 2007, 22:43:24 » |
|
В HC работает и на кириллице И вправду работает! : Что ж, неплохой стал быть парсер в этой реализации RegExpEngine
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
DenZzz
|
|
« Ответ #14 : 04 июня 2007, 23:00:46 » |
|
А "многочисленные просьбы трудящихся"? Они ж про пробел с твоих слов и были.
Кто просил, те знают! А новички об этом почему-то не спрашивают... Не радует, что в программе существуют примеры выясняемого случайно и не описанного в документации поведения.
В этот момент я обычно предлагаю недовольным читателям самим написать или дополнить существующую Документацию (ФАК) по HC и они почему-то быстро "остывают"... Помнится, Rick даже хотел прикрутить к Документации что-то вроде Wiki...
|
|
|
|
|
Михаил
|
|
« Ответ #15 : 05 июня 2007, 00:22:35 » |
|
В этот момент я обычно предлагаю недовольным читателям самим написать или дополнить существующую Документацию (ФАК) по HC и они почему-то быстро "остывают"...
Видимо, знаешь, что я напишу, а вставлять в ФАК не хочешь. Может поэтому не предложил на этот раз? Дополни Документацию (ФАК) следующим: Возможно ли применение при написании правил модификаторов Perl?
Нет. Однако необходимо учитывать, что к каждому правилу автоматически применяются следующие модификаторы: - игнорирование пробелов (имеются в виду "истинные" пробелы, а не метасимволы \s и пробелы, созданные через escape-последовательности). Например, "а б" эквивалентно "аб"; - игнорирование регистра (различия между заглавными и строчными буквами) как в латинице, так и в кириллице. Например, "фtДw" эквивалентно "ФTдW".
|
|
|
|
|
NothingAnother
Beta tester
Репутация: +7/-2
Offline
Сообщений: 434
Spoiler
|
|
« Ответ #16 : 05 июня 2007, 08:18:23 » |
|
Возможно ли применение при написании правил модификаторов Perl? Нет. Мдя... Ну и с чего ты взял, что " нет"? Как раз, именно " да"! Я для чего тебе написал ...К твоим услугам опция "х"... Используй конструкцию (?опции:выражение )DenZzz, а не напрасно ли Михаил разместил этот топик в ветке " Бета-тест"? Может, перенесёшь в " Общие"?
|
|
« Последнее редактирование: 05 июня 2007, 08:43:18 от NothingAnother »
|
Сообщить модератору
Записан
|
Мы тоже не всего читали Шнитке!.. © В. Вишневский
|
|
|
|
DenZzz
|
|
« Ответ #17 : 05 июня 2007, 09:04:59 » |
|
Дополни Документацию (ФАК) следующим:
Добавил в ФАК к существующему вопросу, подправив преамбулу. DenZzz, а не напрасно ли Михаил разместил этот топик в ветке "Бета-тест"? Может, перенесёшь в "Общие"?
О.К.
|
|
|
|
|
Михаил
|
|
« Ответ #18 : 05 июня 2007, 09:11:08 » |
|
Мдя... Ну и с чего ты взял, что "нет"?
С твоего молчания в ответ на соответствующий вопрос. Добавил в ФАК к существующему вопросу, подправив преамбулу. Спасибо.
|
|
|
|
|
Rick
|
|
« Ответ #19 : 05 июня 2007, 11:13:28 » |
|
Если и добавлять, то в Документацию по написанию правил в формате RegExp, но я писать сей обширный эпос не возьмусь! Вот когда найдется доброволец... Не нужно обширного эпоса. Нужны азы для масс - самые общеупотребимые случаи. Помнится, Rick даже хотел прикрутить к Документации что-то вроде Wiki... На этом хостинге Wiki не будет. Не потянет. С декабря обещают обновление PHP и MySQL, полгода прошло - воз и ныне там.
|
|
|
|
|
|