0 votos

AppleScript Delimitador de Texto para el texto más reciente

Tengo un montón de texto en el archivo My_Note_Backup.txt

Cada vez que ejecute una secuencia de comandos, se agrega a este texto algo como

demo
demo
{
demo demo demo
demo
}
demo ...

y esto se repite alrededor de 60 veces al día.

¿Cómo puedo tener un AppleScript que sólo copia la última nota de entre { y }

Tengo el delimitador de texto aquí, pero ¿cómo puedo obtener el texto más reciente?

set theName to ""
set theName to the clipboard

set theText to Unicode text
set theSource to theName
property leftEdge1 : "{"
property rightEdge2 : "}"
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge1
    set classValue to text item 2 of theSource
    set text item delimiters to rightEdge2
    set theName to text item 1 of classValue
    set text item delimiters to saveTID
    theName
end try
set the clipboard to theName

el archivo de texto es

set dataBackupFile to (path to desktop folder as text) & "My_Note_Backup.txt"

1voto

timothymh Puntos 5183

Hay un número de opciones que le permiten ejecutar un regex de búsqueda en Applescript, que es probablemente la manera más fácil de hacer de lo que usted está buscando. El siguiente código es escrito usando Satimage, pero también se puede utilizar cualquiera de las otras opciones con la misma expresión de cadena.

set regexStr to "(?<={\n)[^{}]*(?=\n}[^}]*\Z)"
find text regexStr in dataBackupFile with regexp and string result

Dado el texto proporcionado, esto volvería:

demo demo demo
demo demo

La integridad del bien, sólo voy a romper el regex:

(?<={\n)[^{}]*(?=\n}[^}]*\Z)
(?<={\n)                     - makes sure the match is immediately preceded by {\n
        [^{}]*               - matches as many non-brackets as it can (your string)
              (?=\n}[^}]*\Z) - makes sure the match is immediately followed by a
                               close bracket, with no more brackets between it and
                               the end of the file

Edit: me acabo de dar cuenta de que su ejemplo de texto ha sido editado por alguien desde la primera vez publicado. Si en realidad significaba que todos los de una línea separada por espacios, se debe reemplazar el \ns con espacios.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X