как изменить разделитель текстовых элементов в расширенном тексте Keynote, чтобы точка и запятая не игнорировались (используя Javascript для автоматизации)?

Вкратце:

с объектами форматированного текста iWork разбиение текста на слова происходит из:

"Это... он сказал, это приговор!"

to:

["Это", "он", "сказал", "есть", "а", "предложение"]

Итак: исчезли точки, запятая и восклицательный знак. Аналогично ситуации с AppleScript, но с Javascript для автоматизации мне непонятно, как установить разделитель текстового элемента (плюс: я надеюсь, что он может быть проще, чем в старые времена).

Подробно:

Я хотел бы изменить форматированный текст, например:

testing [value] units <ignore this>
>>>
also ignore this
<<<
etc.

Текст может содержать варианты размера/цвета/веса, которые следует сохранить. Результат должен быть, например:

testing 123 units
etc.

Когда я просматриваю слова (в моем случае: заметки докладчика в Keynote), я получаю:

["testing", "value", "units", "ignore", "this", "also", "ignore", "this", "etc"]

вместо:

["testing", "[value]", "units", "<ignore", "this>", ">>>", "also", "ignore", "this", "<<<", "etc."]

Итак: такие символы, как ., [ и >, не отображаются, что делает невозможным поиск/замену.

Чтобы получить слова, я использую:

words = Application("Keynote").documents[0].slides[0].presenterNotes.words

Я также пробовал использовать who() в сочетании с игнорированием/учетом (регистр, дефисы, знаки препинания), но результат тот же.

Как я могу получить список слов, содержащих небуквенно-цифровые символы?


person wivku    schedule 25.01.2015    source источник
comment
Вы поняли это? Действительно ли .....слова дали вам слова? Я пытался извлечь презентационные заметки и поместить их в текстовый файл уже около 2 дней, но не могу понять.   -  person user1086377    schedule 28.04.2015
comment
Нет, никакого прогресса. По вашему вопросу: если вы опубликуете его как обычный вопрос Stackoverflow (и добавите сюда комментарий со ссылкой), я могу дать вам пример кода, который копирует PresenterNotes (только текст).   -  person wivku    schedule 01.05.2015
comment
Я добавил здесь вопрос: stackoverflow.com/questions/29908323/ спасибо!!!   -  person user1086377    schedule 01.05.2015
comment
Я добавил новый вопрос, где я пытаюсь решить его с другим подходом. Этот подход отлично работает с TextEdit (attributeRuns), но, похоже, что attributeRuns недоступен для Keynote. stackoverflow.com/questions/29989289/   -  person wivku    schedule 01.05.2015


Ответы (1)


Чтобы получить полный текст заметок к слайду, используйте метод presenterNotes():

note = Application("Keynote").documents[0].slides[0].presenterNotes()

Это не совсем интуитивно понятно для меня, но работает нормально.

person Dan Sherman    schedule 08.12.2015
comment
вопрос был не в этом. Возникает вопрос (после прочтения заметок), как обрабатывать их пословно, включая ..., ‹‹‹ и т. д. И, в частности (см. дополнительный вопрос): как обрабатывать их форматированный текст (шрифт/цвет/ размер). - person wivku; 14.08.2016