Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2009, 14:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 1  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
По умолчанию Regexp для выдергивания XML из текста кода.

Нужен паттерн который выдергивает xml из кода.
Например такой:
Код:
типа AS3 код 
<?xml version="1.0"?>
<docs>
	<!--
		asdf
		<docs a='5'/>
		<docs a='5'></docs>
		<![CDATA[Matches any word character (alphanumeric & underscore).<br/><br/><b>Note:</b><br/>
	-->
	<category name="character classes">
		<item 
		pattern=".">Matches any character, except for line breaks if dotall is false.</item>
		<item pattern="\w"><![CDATA[Matches (alphanumeric & underscore).<br/><br/><b>Note:</b><br/>The actionscript implementation of word characters is very p characters.]]></item>
		<item pattern="\W"
		>Matches any character that is not a word character (alphanumeric & underscore).</item>
	</category>
	<category name="character sets">
		<item pattern="[ABC]"><![CDATA[Match in the set.<br/><br/><b>Example:</b><br/>Matches defense or defence<br/>defen[cs]e]]></item>
		<item pattern="[^ABC]">Match any single character that is not in the set.</item>
	</category>
</docs>
типа AS3 код
Не сталкивались с готовыми решениями?
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 05.03.2009 в 16:08.
Старый 05.03.2009, 15:34
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
так тут же только XML, или я чего-то не понимаю? где код-то

Старый 05.03.2009, 15:37
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Код может быть любой и сверху и снизу. Важно, что был выделился весь xml из примера.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2009, 16:06
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ну тут, как бы, для одного языка это совсем не тривиальная задача, а на неизвестный язык и того сложнее. по сути тебе надо взять флэшовый синтаксический парсер написанный на джаве ( http://opensource.adobe.com/svn/open...er/Parser.java ). там ~8K строк, из него там пятая часть это как раз анализ XML в коде основная проблема это понять, что начался XML. а это определяется контекстом. в общем это так же трудно как и определять регэкспы в коде, в силу того, что токены "/" и "<" могут означать много чего, и без контекста этого не понять.

p.s.: можно ещё поискать где-нить.

Старый 05.03.2009, 16:21
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Код - AS3. Парсер, это парсер. А я хотел именно регэкспом выделить весь xml в коде.

Добавлено через 4 минуты
Я вчера руку набивал. Написал такое чудо
Код:
((<\?xml(.|\r)*?\?>(.|\r)*?)?(<([_$A-Za-z])(.|\r)*?>(.|\r)*?</(\6)>|<([_$A-Za-z])(.|\r)*?/>))
Но проблемы на <![CDATA[]]>, особенно на тегах внутри.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2009, 16:32
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
. - включает в себя \r

Старый 05.03.2009, 16:36
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Только когда включен dotall. А с ним становится на много сложнее.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2009, 17:15
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
я написал такой
Код:
/(<\?xml\s.*?\?>)?(<([_$\w]+)\s?.*?(\/>|>.*?<\/\3>))/i
почему-то он захватил больше твоего, хоть он и короче. на перле по идеи можно было бы написать так:
Код:
/(<\?xml\s.*?\?>)?(<([_$\w]+)\s?.*?(\/>|>(?R)?<\/\3>))/i
то есть включить рекурсию. тут проблема в том, что либо надо исключить повторные тэги, либо рекурсивно обработать. но во флэше рекурсий кажется нету.

Старый 05.03.2009, 17:44
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Он скушает
Код:
<456 a='5'/>
а этого не хотелось бы, хотя мы же не на валидность проверяем.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.03.2009, 18:03
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
блин. тупо сказать так: [a-z][_$\w]*

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:47.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.