In Notepad ++ è possibile utilizzare un plug-in chiamato PythonScript per eseguire il lavoro. Se si installa il plugin, creare un nuovo script in questo modo:
quindi è possibile utilizzare il seguente script, sostituendo le variabili regex e funzioni come meglio credi:
import re
#change these
regex = r"[a-z]+sym"
function = str.upper
def perLine(line, num, total):
for match in re.finditer(regex, line):
if match:
s, e = match.start(), match.end()
line = line[:s] + function(line[s:e]) + line[e:]
editor.replaceWholeLine(num, line)
editor.forEachLine(perLine)
Questo particolare esempio funziona trovando tutte le partite in una particolare linea, quindi applicando la funzione ogni ciascuna corrisponde. Se hai bisogno di un supporto multilinea, lo script Python "Conext-Help" spiega tutte le funzioni offerte incluse le funzioni pymlsearch/pymlreplace definite sotto l'oggetto 'editor'.
Quando sei pronto per eseguire lo script, vai al file che desideri eseguire prima, quindi vai a "Script>" nel menu Script Python ed esegui il tuo.
Nota: mentre si sarà probabilmente in grado di utilizzare notepad 's funzionalità di undo ++ se sbagli, potrebbe essere una buona idea mettere il testo in un altro file prima di procedere al funziona.
P.S. Puoi 'trovare' e 'segnare' ogni occorrenza di un'espressione regolare usando la finestra di dialogo di ricerca incorporata di notepad ++, e se puoi selezionarli tutti puoi usare la funzionalità "Caratteri-> MAIUSCOLO" di TextFX per questo particolare problema, ma io Non sono sicuro di come passare dal testo contrassegnato o trovato al testo selezionato. Ma, ho pensato di pubblicare questo nel caso qualcuno fa ...
Edit: In Notepad ++ 6.0 o superiore, è possibile usare "PCRE (Perl Compatible Regular Expression) Ricerca/Sostituisci" (fonte: http://sourceforge.net/apps/mediawiki/notepad-plus/?title=Regular_Expressions) Così questo avrebbe potuto essere risolto usando una regex come (.)([A-z])(.+)
con un argomento sostitutivo come \1\U\2\3
.
Perché "Qui" e "Realmente" sono corretti? –