So analysieren Sie Strings auf Applescript / mac

2693
light.hammer

Wie schreibe ich ein Skript zur Analyse von Zeichenfolgen in Applescript (oder einem anderen Skriptprogramm für Mac)? Beispiel: Scannen Sie die Textdatei für "Ich esse gerne", kopieren Sie den nachfolgenden Text und enden Sie bei ".". Wenn meine Datei "Ich liebe Äpfel. Ich esse gerne Kirschen. Ich esse gerne Trauben, Pekannüsse und Pfirsiche." es würde "Äpfel Kirschen Trauben, Pekannüsse und Pfirsiche" zurückgeben

0

1 Antwort auf die Frage

1
Chris Johnsen

Der übliche Verdächtige für die Verarbeitung von Text in AppleScript ist die integrierte globale Eigenschaft text item delimiters. Sie können damit sowohl eine einzelne Zeichenfolge in mehrere Teile aufteilen (bei Verwendung des text items … ofReferenzformulars), Bereichsendpunkte auswählen (bei Verwendung text item Nin der text … ofReferenzform) und mehrere Teile zu einer einzigen Zeichenfolge verbinden (wenn eine Liste in eine Zeichenfolge umgewandelt wird). .

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 ", ".") 
Dumme Frage: Wie würde ich Textelement-Deliminatoren erstellen, die Anführungszeichen enthalten? Offensichtlich würde "" "es nicht funktionieren. light.hammer vor 13 Jahren 0
Sie können das Anführungszeichen mit dem umgekehrten Schrägstrich umgehen: "\" " NSGod vor 13 Jahren 1