NotePad++ Obtener palabras con patrón REGEX de delimitadores

NotePad++ Obtener palabras con patrón REGEX de delimitadores

Actualmente estoy usando este REGEX para obtener palabras completas con un prefijo PRE_

\b(PRE_)\S*

Esto funciona bien en la mayoría de los casos, pero me gustaría manejar casos en los que un carácter especial es parte de la palabra, como un punto, una coma u otro carácter especial. , ; - { } ( ) [ ]

Por ejemplo, las palabras aquí:

PRE_samplewordwithoutdelimiter
PRE_sampleword.otherwordsnotincluded;
PRE_Sampleword{}...deleted
PRE_complexword()a.;.is deleted
Somewords ahead PRE_sometext() ending in other words
Words with bracket [PRE_brackettext] are deleted
PRE_sampleword is spaced out so deleted
sampleword.PRE_deleted;
notdeleted.notdeleted.PRE_

Me gustaría encontrar sólo la primera parte de una palabra delimitada. Entonces puedo eliminar o reemplazar la palabra. Entonces, en el caso de reemplazar todas las palabras con el prefijo PRE_ en este escenario con "" como texto, obtendría:

<DELETED>
<DELETED>.otherwordsnotincluded;
<DELETED>{}...deleted
<DELETED>()a.;.is deleted
Somewords ahead <DELETED>() ending in other words
Words with bracket [<DELETED>] are deleted
<DELETED> is spaced out so deleted
sampleword.<DELETED>;
notdeleted.notdeleted.<DELETED>

Estaba probando REGEX diferentes, pero nada coincide del todo correcto en todas las muestras. Algo como lo siguiente no funciona:

\b(PRE_)\S*(?:[;]|[.][-])$

Cualquier ayuda aquí sería muy apreciada.

Respuesta1

Método 1

En lugar de incluir todos los caracteres que no sean espacios ( \Sen su primera expresión regular) después PRE_, simplemente indique todos los "no delimitadores" en su búsqueda y debería funcionar.

Lo siguiente funciona para todo su ejemplo, reemplazándolo \Scon [A-Za-z]:

\bPRE_[A-Za-z]*

Si desea incluir números, guiones ( -) y guiones bajos ( _), puede utilizar lo siguiente:

\bPRE_[-A-Za-z0-9_]*

Método 2

De lo contrario, puede modificar su en \S"cualquier cosa menos \sy otros delimitadores como .,,,,,,,,, ( y cualquier otro que desee )" . De esa manera, su expresión regular se convierte ,en;{}()[]

\bPRE_[^.;,{}()[\]\s]*

La frase [^blahblah]significa cualquier carácter excepto blabla.

información relacionada