Wie man Strings auf Applescript / Mac analysiert

0

Wie würde ich ein Skript schreiben, um Zeichenfolgen in Applescript (oder einem anderen Skriptprogramm für Mac) zu analysieren? Beispiel: Scannen Sie die Textdatei nach "Ich liebe es zu essen", kopieren Sie den nachfolgenden Text, und beenden Sie sie mit ".". Wenn meine Datei "Ich liebe es, Äpfel zu essen. Ich liebe es, Kirschen zu essen. es würde "Äpfel Kirschen Trauben, Pekannüsse und Pfirsiche" zurückgeben

Lichthammer
quelle

Antworten:

1

Der übliche Verdacht für die Verarbeitung von Text in AppleScript ist die integrierte globale Eigenschaft text item delimiters. Sie können damit eine einzelne Zeichenfolge in mehrere Teile aufteilen (wenn Sie das text items … ofReferenzformular verwenden), Bereichsendpunkte auswählen (wenn Sie text item Ndas text … ofReferenzformular verwenden) und mehrere Teile zu einer einzelnen Zeichenfolge zusammenfügen (wenn Sie eine Liste zu einer Zeichenfolge zusammenfügen). .

to pickText(str, startAfter, stopBefore)
    set pickedText to {}
    set minLength to (length of startAfter) + (length of stopBefore)
    repeat while length of str is greater than or equal to minLength
        -- look for the start marker
        set text item delimiters to startAfter
        -- finish if it is not there
        if (count of text items of str) is less than 2 then exit repeat
        -- drop everything through the end of the first start marker
        set str to text from text item 2 to end of str

        -- look for the end marker
        set text item delimiters to stopBefore
        -- finish if it is not there
        if (count of text items of str) is less than 2 then exit repeat
        -- save the text up to the end marker
        set end of pickedText to text item 1 of str

        -- try again with what is left after the first end marker
        set str to text from text item 2 to end of str
    end repeat
    set text item delimiters to " "
    pickedText as string
end pickText

-- process some “hard coded” text
set s to "I love eating apples. I love eating cherries. I love eating grapes, pecans, and peaches."
pickText(s, "I love eating ", ".") --> "apples cherries grapes, pecans, and peaches"


-- process text from a file
set s to read file ((path to desktop folder as string) & "Untitled.txt")
pickText(s, "I love eating ", ".")
Chris Johnsen
quelle
Dumme Frage: Wie würde ich Textelement-Trennzeichen erstellen, die Anführungszeichen enthalten? Offensichtlich würde "" "nicht
funktionieren
1
Sie können das Anführungszeichen mit dem
umgekehrten