Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2010, 19:00
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

О, чо написал.
/(?:<!--([\s\S]*?)-->)|(?:<!\[CDATA\[([\s\S]*?)\]\]>)|(?:<(\/)?([\w\-_]+)(?::([\w\-_]+))?((?:[\s]*[\w\-_]+(?::[^=]+)?="[^"]*")*)\s*(\/)?>)/gi


В replace, например, попадут аргументы:
result, isComment, isCDATA, isCloseTag, prefix, name, attributes, isEmptyTag, index

Разбор attributes:
/[\s]*([\w\-_]+)(?::([^=]+))?="([^"]*)"/gi

Аргументы:
result, prefix, name, data, index


Хз, может кому и понадобиться.

Последний раз редактировалось B~Vladi, 08.11.2010 в 19:07.
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2010, 01:32
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

сакс парсер пишешь? х)
__________________
.ня
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2010, 08:34
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от tenshi
сакс парсер пишешь? х)
Да не суть
Регулярки же у нас во всех языках перловые. Пусть останется на просторах интернета, т.к. я больше нигде не видел такого.
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2010, 13:18
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

<option selected> ? а такое попадает
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2010, 13:52
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Ах, да, забыл написать, что текст должен быть валидным xml. Нет, не попадает. Но при желании поправить можно.
Ответить с цитированием
  #6 (permalink)  
Старый 09.11.2010, 15:30
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Теперь любой сможет с лёгкостью найти эти бесценные строки в гугле по запросу "о, чо написал"
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2011, 18:10
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

О, ещё чо написал:
Теги:
/(?:<!--([\s\S]*?)-->)|(?:<!\[CDATA\[([\s\S]*?)\]\]>)|(?:<\/\s*([a-z\-_]+)(?::([a-z\-_]+))?\s*>)|(?:<\s*([a-z\-_]+)(?::([a-z\-_]+))?((?:\s*[a-z\-_]+(?::[a-z\-_]+)?\s*(?:=\s*(?:(?:"[^"]*")|(?:'[^']*')))?)*)\s*(\/)?>)/gi

Атрибуты:
/(?:\s*([a-z\-_]+)(?::([a-z\-_]+))?\s*(?:=\s*(?:(?:"([^"]*)")|(?:'[^']*')))?)*/gi

Это для HTML. Корректно отрабатывает, например, такой код:
<nts:as asd asd:as=" ' asd:fake_attr " asd:as = ' " asd:fake_attr ' />


Вообще сказать, везде пишут что парсинг HTML-кода регулярками великое зло, в том числе на stack overflow и хабре. Может потому что не справились?...
Если кто найдет ошибку - дайте знать
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 07.09.2011 в 18:20.
Ответить с цитированием
  #8 (permalink)  
Старый 07.09.2011, 18:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от B~Vladi
Корректно отрабатывает
А что значит отрабатывает?

Сообщение от B~Vladi
Вообще сказать, везде пишут что парсинг HTML-кода регулярками великое зло, в том числе на stack overflow и хабре. Может потому что не справились?...
Наверно потому, что регулярками невозможно проверить правильность вложенности тегов.
Ответить с цитированием
  #9 (permalink)  
Старый 07.09.2011, 18:26
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
А что значит отрабатывает?
Ой, обрабатывает.
Сообщение от Kolyaj
Наверно потому, что регулярками невозможно проверить правильность вложенности тегов.
Спорим на $100500 что можно? А вообще зачем? В HTML допускаются незакрытые теги br и img например. Хотя и это можно учесть.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #10 (permalink)  
Старый 07.09.2011, 18:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Давай начнём с простого, проверка правильности расстановки скобок одного типа.
var str = '()((()())(())()(()))'; // например
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал часики для обратного отсчета. Подскажите где слажал t0xas Общие вопросы Javascript 14 26.09.2010 18:22
Написал скрипт,не работает bumero777 Ваши сайты и скрипты 4 08.07.2010 11:34
Написал функцию, а WebKit её не понимает Arkaim Events/DOM/Window 10 12.02.2010 18:03
Написал класс-обертку над xmlhttp, но он не работает почему то:( nolka4 AJAX и COMET 2 04.08.2009 20:53
Проблемы с приемом переменных через Java Script Kaaron jQuery 2 08.07.2009 03:27