0 votos

¿cómo recortar todas las notas a pie de página entre corchetes [x] de una larga cadena de texto de Wikipedia?

Quiero mantener la estructura de los párrafos, pero eliminar todos los corchetes del texto que está en el portapapeles.

Por ejemplo, este texto:

Las tres rayas son la marca de identidad de Adidas, que se ha utilizado en los diseños de ropa y calzado de la empresa como ayuda al marketing. La marca, que Adidas compró en 1952 a la empresa deportiva finlandesa Karhu Sports por el equivalente a 1.600 euros y dos botellas de whisky,[7][8] tuvo tanto éxito que Dassler describió a Adidas como "la empresa de las tres rayas"[7][9].

Quiero que sea así (sin importar la longitud de la cadena de texto):

Las tres rayas son la marca de identidad de Adidas, que se ha utilizado en los diseños de ropa y calzado de la empresa como ayuda al marketing. La marca, que Adidas compró en 1952 a la empresa deportiva finlandesa Karhu Sports por el equivalente a 1.600 euros y dos botellas de whisky, tuvo tanto éxito que Dassler describió a Adidas como "la empresa de las tres rayas".

He probado esto pero borra la mayor parte de la cadena:

set theName to (the clipboard)
set y to characters 1 thru ¬
    ((offset of "[" in theName) - 2) ¬
        of theName as string

También lo he intentado:

do shell script "sed -E -e 's|\\[.*||' -e 's|,||g' -e 's|^[ ]+||' -e 's|[ ]+$||'<<<" & theName's quoted form

0 votos

En la documentación de expresiones regulares, busque las palabras "perezoso" y "codicioso". No voy a intentar explicarlo porque tampoco soy un experto.

4voto

user3439894 Puntos 5883

Utilizando este regex \\[[^[a-zA-Z]+] con sed y su -E opción en un do shell script comando funciona para mí.

Tenga en cuenta que hay un extra barra invertida en el regex necesaria para escapar de la otra cuando se utiliza en un do shell script comando . En Terminal sería: \[[^[a-zA-Z]+]

https://regex101.com es un buen recurso para probar expresiones regulares .

Ejemplo AppleScript código :

set foo to "The three stripes are Adidas' identity mark, having been used on the company's clothing and shoe designs as a marketing aid. The branding, which Adidas bought in 1952 from Finnish sports company Karhu Sports for the equivalent of 1,600 euros and two bottles of whiskey,[7][8] became so successful that Dassler described Adidas as \"The three stripes company\".[7][9]"

set bar to do shell script "sed -E 's|\\[[^[a-zA-Z]+]||g' <<< " & foo's quoted form

Resultado

"Las tres rayas son la marca de identidad de Adidas, que se ha utilizado en los diseños de ropa y calzado de la empresa como ayuda para el marketing. La marca, que Adidas compró en 1952 a la empresa deportiva finlandesa Karhu Sports por el equivalente a 1.600 euros y dos botellas de whisky, tuvo tanto éxito que Dassler describió a Adidas como "la empresa de las tres rayas"."

Notas:

El regex utiliza como objetivo un conjunto de tirantes cuadrados con dígitos entre ellos. Así que cualquier combinación de, por ejemplo [1] a cualquier número de dígitos entre el tirantes cuadrados será eliminado.


enter image description here

0 votos

¡Muchas gracias! Esto funciona.

0 votos

@Alex, aprecio las gracias, sin embargo, por favor, eche un vistazo a: ¿Qué debo hacer cuando alguien responde a mi pregunta? y si considera oportuno marcar mi respuesta como la aceptada se lo agradecería, gracias.

0 votos

@Mockman, No eliminará, por ejemplo. [his] ahora. El otro trabajaba en regex101.com pero no con sed o gsed .

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