Снова про RegExp

Статус
Закрыто для дальнейших ответов.

Gennad

Участник
Топикстартер
Сообщения
42
Реакции
1
Привет всем, у меня вопрос к программистам, который возник в результате смелой или глупой попытки создать свой простой скрипт, который использовал бы регулярные выражения в JS.
Сколько я ни искал – нигде в документации к InDesign не встретил описания применения RegExp в скриптинге. По форумам тоже ничего толкового не нашел – услышал лишь что применение регулярных выражений возможно.
Хотел начать с простенького скриптика для теста – не получилось.
with(app){
var myString = new String();
var reg = new String();
var myString = "<Tag>Привет</Tag>";
reg = myString.replace("<Tag>(*.?)</Tag>", "/1")
}
alert(reg);
Выдает <Tag>Привет</Tag>
В Perl все ок, подобная конструкция работает.
#! perl -w

$all = '';
while (<>) {
chomp;
print STDERR "\b\b\b\b\b\b\b\b\b\b$." unless ($. % 50);
$all .= "$_\n" if ($_);
s!<Tag>(*.?)</Tag>!$1!g;
}
print $all;

ВОПРОС: какой синтаксис у RegExp в JS? Как можно применить его к скрипту для InDesign? Хотя бы для моего случая приведенного выше. Как выглядит аналог s!<Tag>(*.?)</Tag>!$1!g; для JS в InDesign?
Я конечно понимаю что мои вопросы может кому и покажутся избитыми, но ничего толкового я найти не смог в инете. Скачал руководства от Адобе InDesign_Scripting_Guide.pdf и InDesign_Scripting_Reference.pdf – там не описан синтаксис RegExp, хотя встречаются примеры с его использованием 2 раза, в обоих случаях RegExp упоминается мельком, как всем знакомое что-то.
 

Strizh

15 лет на форуме
Сообщения
982
Реакции
92
Ответ: Снова про RegExp

Поищи в сети про RegExp в JS - все что найдешь, то и будет работать.
 

Gennad

Участник
Топикстартер
Сообщения
42
Реакции
1
Ответ: Снова про RegExp

Нашел небольшой совет по применнеию RegExp.
Попробовал написать пару строчек. Во фрейме есть текст именно с такими тэгами (специально написал его там чтобы проверить).
with(app){
var reg, rez, tran;
var myString = selection[0].parentStory;
reg = new RegExp("<Tag>(.*?)</Tag>", "g");
tran = reg.exec(myString);
rez = RegExp.$1;
}
alert(rez);
Ничего не находит в тексте, не ругается, просто показывает нулевой результат поиска.
Что не так?
 

Strizh

15 лет на форуме
Сообщения
982
Реакции
92
Ответ: Снова про RegExp

Gennad сказал(а):
Нашел небольшой совет по применнеию RegExp.
Попробовал написать пару строчек. Во фрейме есть текст именно с такими тэгами (специально написал его там чтобы проверить).
with(app){
var reg, rez, tran;
var myString = selection[0].parentStory;
reg = new RegExp("<Tag>(.*?)</Tag>", "g");
tran = reg.exec(myString);
rez = RegExp.$1;
}
Лень конечно штука полезная, но Яндекс еще никто не отменял.
PHP:
var re = new RegExp("(\\d*)\\s*(\\d*)","ig");
var arr = re.exec("111 2222 33333");
var s = "$01 = '" + RegExp.$01 + "' ";
s += "$02 = '" + RegExp.$02 + "' ";
s += "$03 = '" + RegExp.$03 + "'";
document.write(s);

выведет на экран обозревателя текст $01 = '111' $02 = '2222' $03 = ''.

Это же будет работать и в ИД.

Ссылка1
Из поиска. Ссылка2

Дальше думаю сам найдешь.

А дальше в поиск, как любит говорить Шляпа.
 

Strizh

15 лет на форуме
Сообщения
982
Реакции
92
Ответ: Снова про RegExp

Модифицировано для ИД
PHP:
var re = new RegExp("(\\d*)\\s*(\\d*)\\s*(\\d*)","ig"); 
var arr = re.exec("111 2222 33333"); 
var s = "$01 = '" + arr[1] + "' "; 
s += "$02 = '" + arr[2] + "' "; 
s += "$03 = '" + arr[3] + "'";
alert(s);
 

Strizh

15 лет на форуме
Сообщения
982
Реакции
92
Ответ: Снова про RegExp

И еще раз в ПОИСК
 

Glutton

12 лет на форуме
Сообщения
885
Реакции
1
Ответ: Снова про RegExp

Поищи.. я уже неоднакратно показывал здесь - где брать инфу по этому вопросу....
 
Статус
Закрыто для дальнейших ответов.