Solución:
Puede usar una expresión regular para eliminar palabras duplicadas consecutivas en una línea, sin embargo, no creo que sea posible eliminar palabras duplicadas que no son consecutivas (p. Ej. dangerous, hazardous, dangerous
).
Use esta expresión regular en la ventana de reemplazo en Notepad ++, y no olvide seleccionar “Expresión regular” como la opción Modo de búsqueda a continuación:
Esta expresión regular eliminará todas las palabras duplicadas consecutivas, ya sean 2 palabras duplicadas o 10 palabras duplicadas consecutivamente: b(w+)(?:,s+1b)+
.
La misma expresión regular sin comas sería: b(w+)(?:s+1b)+
(puede ser útil para otros usuarios).
Si desea una expresión regular específicamente para solo dos palabras duplicadas (dobles), use esta expresión regular: (bw+b)W+1
.
Coloque esta expresión regular en el Reemplazar con cuadro para mantener una aparición de la palabra (de lo contrario, se eliminarán todas las palabras repetidas): ${1}
.
Estas expresiones regulares solucionarán una situación como la que describió en su pregunta como ejemplo. La primera expresión regular funcionará para cada número de palabras duplicadas (p. Ej. dangerous, dangerous, dangerous, dangerous, hazardous
), mientras que la segunda versión solo funcionará para dos palabras duplicadas (p. ej. dangerous, dangerous, hazardous
).
Nota: La expresión regular solo se aplicará al formato descrito en la pregunta, lo que significa que formatos como two words, two words, anotherword
, two-words, two-words, anotherword
, three words expression, three words expression, anotherword
no se cambiará porque la expresión regular no se aplicará a ellos.
Aquí hay una forma de hacer el trabajo, esto reemplazará todas las palabras duplicadas incluso si no son contiguas:
- control+H
- Encontrar que:
(?:^|G)(bw+b),?(?=.*1)
- Reemplazar con:
LEAVE EMPTY
- comprobar Envolver
- check Expresión regular
- NO COMPROBAR
. matches newline
- Reemplaza todo
Explicación:
(?:^|G) : non capture group, beginning of line or position of last match
(bw+b) : group 1, 1 or more word character (ie. [a-zA-Z0-9_]), surrounded by word boundaries
,? : optional comma
(?=.*1) : positive lookahead, check if thhere is the same word (contained in group 1) somewhere after
Dada una entrada como:
dangerous,dangerous,hazardous,perilous,dangerous,dangerous,hazardous,perilous
Tenemos:
dangerous,hazardous,perilous