действительно ли там что-то сродни regEx в applescript, и в противном случае какова альтернатива?

Введите в такт песни. Начните с медленного ритма и продолжайте свой путь. Не торопись. Печатание в пакетах часто контрпродуктивно. Ритм вызывает точность. Клавиатура похожа на музыкальный инструмент, и именно так музыканты обретают точность. Вам также нужно регулярно тренироваться, даже если каждый день по 5 минут, чтобы тренировать мышцы.

Я забыл детали, но я помню, что у одного известного скрипача спросили следующее:

«Как ты научился играть так быстро?»

Его ответ: «Действительно, действительно медленно».

:)

29
задан gdelfino 29 August 2010 в 12:48
поделиться

2 ответа

Не отчаивайтесь, поскольку в OSX вы также можете получить доступ к sed и grep через команду «do shell script». Итак:

set thecommandstring to "echo \"" & filename & "\"|sed \"s/[0-9]\\{10\\}/*good*(&)/\"" as string
set sedResult to do shell script thecommandstring
set isgood to sedResult starts with "*good*"

Мои навыки работы с sed не слишком высоки, поэтому может быть более элегантный способ, чем добавлять * хорошо * к любому имени, которое соответствует [0-9] {10}, а затем искать * хорошо * в начало результата. Но в основном, если имя файла - «1234567890dfoo.mov», это запустит команду:

echo "1234567890foo.mov"|sed "s/[0-9]\{10\}/*good*(&)/"

Обратите внимание на экранированные кавычки \ "и экранированную обратную косую черту \\ в applescript. Если вы экранируете вещи в оболочке, вы должны избегать экранирования . Итак, чтобы запустить сценарий оболочки, в котором есть обратная косая черта, вы должны экранировать ее для оболочки, например \\, а затем избегать каждой обратной косой черты в applescript, например, \\\\. Это может быть довольно трудно читать.

Так что все, что вы можете сделать в командной строке, вы можете сделать, вызвав ее из applescript (у-у-у!). Все результаты на stdout возвращаются скрипту как результат.

24
ответ дан 28 November 2019 в 01:19
поделиться

Я уверен, что есть приложение Applescript Addition или сценарий оболочки, который можно вызвать для добавления регулярного выражения в сгиб, но я избегаю зависимостей для простых вещей. Я использую этот шаблон стиля все время ...

set filename to "1234567890abcdefghijkl"

return isPrefixGood(filename)

on isPrefixGood(filename) --returns boolean
    set legalCharacters to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}

    set thePrefix to (characters 1 thru 10) of filename as text

    set badPrefix to false

    repeat with thisChr from 1 to (get count of characters in thePrefix)
        set theChr to character thisChr of thePrefix
        if theChr is not in legalCharacters then
            set badPrefix to true
        end if
    end repeat

    if badPrefix is true then
        return "bad prefix"
    end if

    return "good prefix"
end isPrefixGood
4
ответ дан 28 November 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: