Digamos que minha área de transferência seja "nome telefone e-mail" e qualquer texto e números aleatórios.
Pode o palavras ser separado e adicionado em uma lista?
Você não percebe, mas respondeu sua própria pergunta.
TL; DR
Digamos que sua área de transferência contenha a string "Kevin stackexchange.com 124098"
. Separe isso em uma lista de palavras assim:
words of (the clipboard) --> {"Kevin", "stackexchange.com", "124098"}
Você pode ler mais sobre este recurso embutido do AppleScript abaixo, onde eu dei uma explicação detalhada, incluindo por que, infelizmente, isso não será tão eficaz se um endereço de e-mail estiver envolvido:
words of "Kevin@example.com" --> {"Kevin", "example.com"}
Então você precisa se lembrar de restaurar a destruição "@"
símbolo depois; ou, como você sugeriu, use text item delimiters
definido para um caractere de espaço.
Informação detalhada: text item delimiters
vs words
AppleScript text
objetos são compostos de word
e character
elementos que se subdividem nos blocos de componentes de qualquer string: text
subdivide-se em words
e / ou characters
; uma word
subdivide-se em characters
.
Além disso, o words
subdividir text
em intervalos marcados por espaços em branco de qualquer comprimento, o que é muito mais conveniente do que text item delimiters
, que dividirá uma string em cada ocorrência individual de um delimitador especificado.
Por exemplo, definir text item delimiters
ao space
personagem, e aplicá-lo a uma frase de duas palavras com três espaços entre eles, você vai acabar com isso:
text items of "foo bar" --> {"foo", "", "", "bar"}
No entanto, obtendo em vez disso o words
que compõem a cadeia de caracteres evita ter que lidar com itens de lista de seqüência vazia:
words of "foo bar" --> {"foo", "bar"}
Além disso, como text items
, words
de um text
objeto irá subdividir a string naturalmente em uma lista de itens individuais.
Para completar, vou demonstrar rapidamente como characters
irá decompor uma string:
characters of "foo" --> {"f", "o", "o"}
characters of "foo bar" --> {"f", "o", "o", " ", " ", " ", "b", "a", "r"}
Um pouco de cautela é garantido ao decompor uma string em words
, acreditando que opera de forma idêntica (ou perto o suficiente) a um space
delimitador. Não faz. Há um conjunto definido de caracteres que são considerados "caracteres de palavra" e um conjunto de caracteres que não são. "Caracteres do Word" são qualquer caractere que, quando agrupados, são considerados formadores de palavras. Se algum caractere não pertencente à palavra aparecer, a palavra será considerada dividida em duas palavras distintas nesse caractere.
Os caracteres do Word basicamente incluem as letras A-Z e a-z (e todas as variantes acentuadas), números de 0 a 9, o período ( .
) e o sublinhado ( _
). assim "tH1s"
é uma palavra e "this_is_a_single_word.123"
. Contudo, "this#is%four words"
e, contraintuitivamente para mim, "over-achieving"
é considerado duas palavras (o hífen é um caractere sem palavra).
Outros caracteres não verbais incluem obviamente o espaço; ou qualquer espaço em branco para esse assunto. Além disso, qualquer símbolo que você possa digitar com o teclado que não tenha sido incluído na lista de caracteres do word, exceto o cifrão ( $
), o que eu chaticamente deixei de mencionar apenas para refletir o quão chato é que é aleatoriamente considerado um caractere de palavra:
words of "hello#$&world" --> {"hello", "$", "world"}
set myList to the words of (the clipboard)
o que produzirá{"name", "email", "phone"}
para os dados de exemplo fornecidos.