applescript: aggiungi il contenuto degli appunti alla lista

0

Posso creare una lista dagli appunti?

Diciamo che il mio blocco appunti è "nome telefono e-mail e qualsiasi numero casuale di testo

Le parole possono essere separate e aggiunte in un elenco?

Anche l'oggetto può essere sia di testo che di numeri, ma immagino che il modo migliore sarebbe quello di creare un delimitatore di testo in base allo spazio?

    
posta Kevin 07.12.2018 - 15:41
fonte

1 risposta

2

Let's say my clipboard is "name email phone" and any random text and numbers.
Can the words be separated and added in a list?

Non te ne rendi conto, ma hai risposto alla tua stessa domanda.

TL; DR

Dì che la tua clipboard contiene la stringa "Kevin stackexchange.com 124098" . Separalo in un elenco di parole in questo modo:

words of (the clipboard) --> {"Kevin", "stackexchange.com", "124098"}

Puoi leggere di più su questa funzione AppleScript incorporata di seguito, dove ho fornito una spiegazione dettagliata, incluso perché, purtroppo, questo non sarà altrettanto efficace se è coinvolto un indirizzo email:

words of "[email protected]" --> {"Kevin", "example.com"}

Quindi dovrai ricordare di ripristinare il simbolo obliterato "@" più tardi; oppure, come hai suggerito, usa text item delimiters impostato su un carattere spazio.

Informazioni dettagliate: text item delimiters vs words

Gli oggetti AppleScript text sono composti da word e character elementi che si suddividono l'un l'altro nei componenti costitutivi di qualsiasi stringa: text suddivide in words e / o %codice%; a characters suddivide in word .

Inoltre, characters suddivide words a intervalli contrassegnati da spazi bianchi di qualsiasi lunghezza, che è molto più conveniente di text , che dividerà una stringa a ogni singola occorrenza di un delimitatore specificato.

Ad esempio, impostando text item delimiters sul carattere text item delimiters , e applicandolo a una frase di due parole con tre spazi tra di loro, ti ritroverai con questo:

text items of "foo   bar" --> {"foo", "", "", "bar"}

Tuttavia, ottenere il space che compone la stringa evita di dover gestire gli elementi della stringa vuota:

words of "foo   bar" --> {"foo", "bar"}

Inoltre, come words , text items di un oggetto words suddividerà naturalmente la stringa in un elenco di singoli elementi.

Per completezza, mostrerò rapidamente come text decompone una stringa:

characters of "foo"       --> {"f", "o", "o"}
characters of "foo   bar" --> {"f", "o", "o", " ", " ", " ", "b", "a", "r"}

Un po 'di cautela è giustificata quando si decompone una stringa in characters , ritenendo che funzioni identicamente (o abbastanza vicino) a un delimitatore words . Non è così. Vi è un insieme definito di caratteri che sono considerati "caratteri parola" e un insieme di caratteri che non lo sono. I "caratteri di parole" sono tutti i caratteri che, se raggruppati, sono considerati formatori di parole. Se viene visualizzato un carattere diverso da una parola, la parola viene considerata divisa in due parole distinte in quel carattere.

I caratteri di parole includono essenzialmente le lettere A-Z e a-z (e qualsiasi variante accentata), i numeri 0-9, il periodo ( space ) e il carattere di sottolineatura ( . ). Quindi _ è una parola e "tH1s" . Tuttavia, "this_is_a_single_word.123" , e, contrariamente a me, "this#is%four words" è considerato due parole (il trattino è un carattere non parola).

Altri caratteri non di parole includono ovviamente lo spazio; o qualsiasi spazio bianco per quella materia. Più un simbolo che puoi digitare con la tastiera che non è incluso nell'elenco dei caratteri di parole, tranne il simbolo del dollaro ( "over-achieving" ), che ho seccamente lasciato per ora menzionare solo per riflettere come fastidioso è che è considerato a caso un carattere di parola:

words of "hello#$&world" --> {"hello", "$", "world"}
    
risposta data 08.12.2018 - 01:01
fonte

Leggi altre domande sui tag