NotePad ++ - Perché trovare ^ non funziona?


16

Sto cercando di allontanarmi da TextPad e non riesco proprio a ottenere espressioni regolari come ^e $ad essere sostituito. Ho sicuramente barrato la casella delle espressioni regolari.

Che cosa sto facendo di sbagliato?

Sto cercando di trovare l'inizio di una nuova linea. In TextPad, trova '^' e assicurati che le espressioni regolari siano abilitate. Con Notepad ++ non lo fa. Dice solo "Non trovato".


Ho usato TextPad e ho riscontrato che lo stesso problema è fastidioso (per dirla in parole povere). Fondamentalmente, la funzionalità Regex di Npp è stentata rispetto alla maggior parte degli altri Regex-s. Ciò deriva dal fatto che Npp è un'astrazione dell'Editor di Scintilla che utilizza un RegEx basato su una riga :( - L'equipaggio di Npp è abbastanza ben consapevole di questo problema, ma è stato (stranamente) in rovina (un problema di tempo e risorse). $ funziona, ma non hanno ancora ^ a lavorare su più righe (ancora). Conosco questa limitazione e lavoro con (e lo svelo). Come menzionato di seguito ^ (.) funziona (Raramente, torno a TPad o UltraEdit)
Peter.O

1
PS. spesso puoi usare Extended (vs RegEx ) come soluzione alternativa per \ re \ n - questo semi imita un inizio di linea. Inoltre, puoi comunque rimanere nella ricerca normale e attivare Visualizza - Mostra simbolo - Mostra fine linea .. Sebbene non vengano visualizzati (visivamente) nel campo Trova, se selezioni Prima CRLF, l'auto-prime del campo Trova entra in funzione quando si preme CTRL + F e diventa abbastanza felicemente una ricerca su più righe (ma non su RegEx). Non è molto diverso dalla ricerca estesa , ma l'ho trovato interessante e alcuni lettori potrebbero trovarlo anche così. (I love Npp :)
Peter.O

Perché esattamente stai cercando di trovare l'inizio di una nuova linea? Vuoi aggiungere qualcosa all'inizio di ogni riga? Ciò ci aiuterebbe effettivamente a rispondere alla domanda. Se stai usando Notepad ++ per allontanarti da una soluzione a pagamento, dovrai imparare le sue stranezze e aggirarle. Non ho avuto problemi a farlo, poiché Notepad ++ è molto buono in molti altri modi.
Joshua Nurczyk,

Risposte:


25

^ e $ sono entrambi ancore in Regex, il che significa che se si desidera sostituire i caratteri letterali ^e $è necessario sfuggirli, di solito con una barra rovesciata iniziale ( \^e \$).

Per trovare il primo carattere su una linea utilizzare ^.

L'ancoraggio della linea di partenza ( ^) è una corrispondenza di larghezza zero, quindi combinandola con. troverà qualsiasi carattere all'inizio di una riga.

Forse puoi spiegare cosa stai effettivamente cercando di fare?


8

Perché questi sono caratteri speciali che rappresentano il fronte ( ^) e la fine della linea ( $). Prova a sfuggirli con a \.

Esempi:

Abbina "Gatto" all'inizio della riga:

^Cat

Abbina "Gatto" alla fine della riga:

Cat$

Abbina "Gatto" come unica cosa su una linea:

^Cat$

Abbina un "$ 100" all'interno di una riga:

\$100 

Ecco un link per i dettagli sulla corrispondenza delle espressioni regolari in Notepad ++.


2
Il collegamento sembra essere (effettivamente) interrotto.
Peter Mortensen,

5

Ho avuto lo stesso problema da solo. Dopo alcuni tentativi ed errori puoi ottenere lo stesso facendo quanto segue:

Trova: ^ (.)

Sostituisci: [la stringa che desideri inserire] \ 1

Ciò che farà sarà individuare e contrassegnare il primo carattere della riga, inserire la nuova stringa e inserire il carattere taggato dopo di esso.

Ad esempio, avevo bisogno di inserire una singola citazione all'inizio di ogni riga:

Trova: ^ (.)

Sostituisci: '\ 1

Puoi fare lo stesso per la fine della riga facendo:

Trova: (.) $

Sostituisci: \ 1 * [la stringa che desideri aggiungere] *


1

Capito.

Prima

  • Albert@hotmail.com
  • Lucas@gmail.com
  • Rober_Klein@aol.com
  • Fisher@zmail.com

Dopo

  • Albert
  • Lucas
  • Rober_Klein
  • Pescatore

Rimuovi dopo carattere o testo

@ (. *) $

Rimuovi prima del carattere o del testo

^ (. *) @

dot = any character
asterisk = zero or more times

1

Ecco come farlo ...

Prima:

$_GET['id']; $_GET['nick'];

Dopo:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

Così. Nel campo Trova inserisci:

$_GET(.*])

Nel campo di sostituzione inserire:

htmlentities($_GET\1)

0

Il problema sembra essere stato risolto ora.

In Notepad ++ v6.9.2 (in esecuzione su Windows 7) ottengo il funzionamento di ^(inizio linea) e $(fine linea).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.