![]() |
|
||||||||||
|
|||||
|
4AM Games
|
Кто тут крутой шарит?
Я вторые сутки пытаюсь понять как составить регулярное выражение, которое бы искало в тексте [acronim="eXtensible Markup Language"]XML[/acronim] и заменяло бы его на <a href="asfunction...........">XML</a> Тоесть фактически ищем паттерн [acronim="(сколько угодно символов, и какие угодно)"](сколько угодно и какие угодно)[/acronim] Есть идеи?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
/[acronim="(.*)"](.*)[\/acronim]/i
ммм? Не проверял, правда. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Игнорирование регистра — модификатор. Я не знаю, не смотрел, может в AS3 модификаторы в другом месте ставятся.
|
|
|||||
|
Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
|
еще надо в конце g поставить (/ig будет), чтобы все вхождения искал, а не первое.
вроде так ![]() |
|
|||||
|
Можно и регулярными выражениями.
Получится не менее трёх выражений. В таких случаях я по-прежнему юзаю самые классные и а теперь и чрезвычайно быстрые методы split() и join(). Во-первых быстрее. Регулярные выражения работают в среднем раз в 5 медленнее. Во-вторых, в регулярных выражениях есть какие-то то ли непонятки, то ли баги. Вобщем разочаровали меня регулярные выражения в АС3. Последний раз редактировалось miramax; 28.12.2006 в 00:39. |
|
|||||
|
4AM Games
|
Мирамакс, ты читал мой вопрос=)? как ты split\join ом сумеешь найти тэги с разным наполнением?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
var str:String = "Текст[anchor='xmlLink'] в тексте есть такие места'] text sdfs[/anchor]или такие'][' [anchor='xmlLink'] ещё одна ссылка[/anchor]здесь нет ссылки [anchor='xmlLdfdfink']и ещё какая-то ссылка[/anchor]";
var ar:Array;
var i:int = 1;
var a:Array
ar = str.split("[anchor='")
while(i < ar.length)
{
a = ar[i].split("']")
if(a.length>1) a.unshift(a.shift().concat("'>", a.shift()));
a = a.join("']").split("[/anchor]")
if(a.length>1) a.unshift(a.shift().concat("</a>", a.shift()));
ar[i] = a.join("");
i+=1
}
str = ar.join("<a href='asfunction:")
trace(str)
Последний раз редактировалось miramax; 28.12.2006 в 00:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|