Substituir Variáveis ​​Específicas no Texto Selecionado Via Script


1

Então, para o meu trabalho, estou constantemente gerando links que têm que variáveis ​​que precisam ser alteradas (Ex. http://www.thedomain.com/ajdkeial.html?keyword1= {keyword1} & amp; keyword2 = {keyword2})

O link é gerado com esses colchetes, para serem substituídos. Agora estou completamente analfabeto com código, mas estou procurando uma maneira de: selecionar o texto e substituir {keyword1} pela palavra-chave real desejada e {keyword2} pela segunda.

Eu imagino isso sendo feito com o histórico da área de transferência para as variáveis ​​para agarrar através do aplicativo "Alfred", no entanto não tenho certeza como eu poderia escrever um script que agarra essas variáveis ​​e substitui o texto, então me dá o produto acabado. Se alguém tivesse qualquer direção para ir, seria muito apreciada.

Respostas:


1

Este é um trabalho para delimitadores de item de texto. Se você não está familiarizado, um delimitador é um separador, normalmente entre as palavras o separador é um espaço. Com os delimitadores de item de texto, você pode alterar o espaço normal para qualquer valor de texto desejado. Nesse caso, você faria "{keyword1}" os delimitadores de item de texto, então o script verá o texto original como apenas duas palavras, tudo antes de "Keyword1" e depois de tudo é a segunda palavra. Em seguida, defina delimitadores de item de texto para o que você deseja substituir "{keyword1}" com e coloque as duas palavras de volta em um item de texto.

Eu escrevi um código básico que faz o que você pergunta abaixo, com alguns comentários inline. Uma nota, sempre que estiver jogando com delimitadores de item de texto, sempre terminará o script, definindo-os de volta ao padrão. Eu armazenei os delimitadores de item de texto original em uma variável chamada "tid" e os configurei novamente no final do script.

--Set the variables
set originalText to "http://www.thedomain.com/ajdkeial.html?keyword1={keyword1}&keyword2={keyword2}"
set key1 to "{keyword1}"
set key2 to "{keyword2}"
set subKey1 to "NewKeyWord"
set subKey2 to "AnotherKeyWord"

--Main Script
set tid to text item delimiters
set text item delimiters to key1
set tempList to every text item of originalText
(* the line above returns two item, everything before {keword1} and the second item is everything after {keyword1} *)
set text item delimiters to subKey1
set newText to every item of tempList as text
(* The line above takes the two items from tempList and puts the replacement key word between them *)
--Below, do the same for the second keyword
set text item delimiters to key2
set tempList to every text item of newText
set text item delimiters to subKey2
set newText to every item of tempList as text
set text item delimiters to tid
return newText --> "http://www.thedomain.com/ajdkeial.html?keyword1=NewKeyWord&keyword2=AnotherKeyWord"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.