За помощь - спасибо!
Цитата:
А если короче: Примеров вообще мало! А в исходниках ExBB форумов копался, изучал регулярки, но ничего не понял... Комментариев слишком мало и примеров. Цитата:
|
Paguo-86PK,
А почитать документацию по тем-же PCRE нет? Или хотя бы http://javascript.ru/basic/regular-expression |
http://www.regexbuddy.com/
http://www.weitz.de/regex-coach/ Цитата:
|
Регулярности - сингулярности. Квантовая физика легче!
Цитата:
Цитата:
Цитата:
И изучал исходники с регулярками. Но понял, что ничего не понял:blink: Почему-то сложно всё это... Вот последняя версия, где регулярности я могу изменять на ходу. Но и это не помогает: <html><head><title>Parser is easy!</title><script> function Parse(text) { html = new Array(); rgl = /(•*)(([^•"']|("|')[^\4]*\4)*)(.*)/; exp = document.getElementsByTagName("input")[0]; if(!exp.value) exp.value = "(•*)(([^•\"']|(\"|')([^\\4][^\\\\\\4])*?\\4)*)(.*)"; //(•*)(([^•"']|("|')([^\4][^\\\4])*?\4)*)(.*) try { expr = new RegExp(exp.value); line = expr.exec(text); for(i = 0; i < line.length; ++ i) switch(i) { case 0: case 3: case 4: // "Лишние" элементы зачёркиваем, делая тусклыми html.push(line[i].strike().fontcolor("gray")); break; case 2: // Основное выражение выделяем html.push(line[i].bold()); break; case 5: // Зелёный комментарий курсивом html.push(line[i].italics().fontcolor("green")); break; default: html.push(line[i]); break; } } catch(e) { html.push("i = " + i + " is " + e); } document.getElementsByTagName("pre")[0].innerHTML = html.join("<br/>"); } </script></head> <body> <textarea rows="12" cols="80" onkeyup="Parse(this.value)">•••txt = "Te\"xt•1" + 'T\'ext•2' • Commentary's</textarea><br/> <input type=text style="width: 50%" value="" onkeyup="Parse(document.getElementsByTagName('textarea')[0].value)"/> <pre></pre> </body> </html> |
Цитата:
Цитата:
|
Регулярности, сэр, это Вам не квантовая физика
Цитата:
Если не ошибаюсь, помогают разрабатывать регулярки? Наподобии Пролога? Типо описываешь задачу: Вход - Выход... А программа строит (угадывает) механизм... Так? Цитата:
В википедии нашёл Regular Expression Editor, который не хочет работать. Java разрешил, не помогло. Однако в IE заработала после всех установок... Вуа-ха-ха... Все ссылки валидаторов проверил. Куда ни ввожу свои выражения, пишет No matches, хоть убей! Уже и • заменил на _, не помогает:) |
Paguo-86PK,
Ищите, в чем бага :) В регулярных выражениях, если не залазить глубоко, нет совершенно ничего сложного -- это всего-навсего шаблон. Вы файлы по маске искали ведь когда-то? ;) Та же регулярка, вид сбоку. |
Я уже зарегулярился совсем
Цитата:
Стоит у меня и Volcov Commander 4, и Hiew... Только в дос маски с ? и * - одно название:haha: А в Perl я однажды изучал эти регулярки. Голова запухла. Бросил Perl, ушёл в PHP, но регулярки обходил за версту. Написал гостевую книгу со встроенным гороскопом и смайлами без регулярок, но собственным разбором. Сложно очень, сейчас смотрю и не понимаю свой же код. А доработать надо. И подсказок нет: Код с "потолка" списывал, без тупого Copy'n'Paste, так-как интересно было изучать PHP: Си-синтаксис, но на серваке:write: Сейчас регулярки изучаю так, что во сне снились. Проснулся уставшим: Во сне регулярки тестил и тестил:no: |
Paguo-86PK,
ну что там тестить? банальный набор логичных правил... честно говоря, Вы первый на моей памяти, кто говорит, что сталкивался с регулярками, разбирался, и ниасилил. |
Регулярки? Это просто!
Цитата:
Вот регулярка (•*)(([^•"']|("|')(\\.|[^\4])*?\4)*)(.*) которая всё делает как надо. Удивительно, как парсер уменьшился в размерах! Потратил на неё более четырёх часов:dance:Да и с механизмами try-catch разобрался и опыта набрался:yes: Спасибо за старт-помощь:victory: |
Часовой пояс GMT +3, время: 19:33. |