.png)
Tengo este escenario:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
Entonces necesito encontrar todas las palabras separadas por signos.- = . "{
Hice una expresión regular para NOTAPAD++ para buscar y eliminar aquellas palabras que tienen signos antes y después (la cadena completa) sin las otras palabras, pero no muy bien:
BUSCAR: (?!\w+[-."={])
REEMPLAZAR: (dejar vacío)
El resultado esperado debería ser:
other words
other words
other words
before words other words
other words
Respuesta1
- Ctrl+H
- Encontrar que:
(?:^|[+=."{}-]+)(?:\w+[+=."{}-]+)+\h*
- Reemplazar con:
LEAVE EMPTY
- comprobar Envolver alrededor
- comprobar expresión regular
- Replace all
Explicación:
(?: # start non capture group
^ # beginning of line
| # OR
[+=."{}-]+ # 1 or more + = . " { } -
) # end group
(?: # start non capture group
\w+ # 1 or more word character
[+=."{}-]+ # 1 or more + = . " { } -
)+ # end group, may appear 1 or more times
\h* # 0 or more horizontal spaces
La captura de pantalla:
Respuesta2
Esto está escrito en Python. Carga los datos de prueba desde un archivo "data.txt" en el mismo directorio.
import os, re
path = "./data.txt"
if os.path.isfile(path): #use local leader file
oFile = open(path)
strFile = oFile.read() #get old leaders
oFile.close()
else:
print("File Not Found")
def replace(line):
for i in line:
if ( i == '-' or i == '=' or i == '.' or i == '"' or i == '{' or i == '}'):
line = line.replace(i,"\n")#Delete \n and replace it with xyz to see
return line
lines = strFile.split("\n")
for line in lines:
answer = replace(line)
print(answer)
centro de ciclo de datos horz verdadero título del ciclo de datos subtítulos personalizados plantilla de título del ciclo de datos slideNum
Respuesta3
Lo que leo de tu pregunta es que básicamente quieres hacer coincidir todas las palabras, pero no los caracteres especiales que las separan, ¿verdad?
[^-=."{}\r\n]+
debería funcionar. Coincidirá con todo lo que no sean caracteres especiales - = . "{
o un salto de línea.
Puede crear y probar expresiones regulares con una herramienta en línea comoexpresión regular101
Actualizar
La siguiente expresión regular elimina las palabras que usted describió, así como los espacios en blanco finales:([^\s]+[-=."{}\r\n][^\s]+\s*)+
Lo probé con éxito en tu ejemplo:
Antes:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
Después:
other words
other words
other words
before words other words
other words