NotePad ++ - ¿Por qué encontrar ^ no funciona?

16

Estoy tratando de alejarme de TextPad , y simplemente no puedo obtener expresiones regulares como ^y $para ser reemplazado. Definitivamente he marcado la casilla de expresión regular.

¿Qué estoy haciendo mal?

Estoy tratando de encontrar el comienzo de una nueva línea. En TextPad, busca '^' y asegura que las expresiones regulares estén habilitadas. Con Notepad ++ no hace eso. Solo dice "No encontrado".

Jack Kada
fuente
Utilicé TextPad y encontré que este mismo problema es molesto (por decirlo suavemente). Básicamente, la funcionalidad Regex de Npp se atrofia cuando se compara con la mayoría de los otros Regex-s. Esto se debe al hecho de que Npp es una abstracción del Editor de Scintilla que utiliza un RegEx basado en una sola línea :( - El equipo de Npp es bastante consciente de este problema, pero (curiosamente) ha quedado en segundo plano. (un problema de tiempo y recursos). $ funciona, pero no tienen ^ para trabajar en varias líneas (todavía). Conozco esta limitación y trabajo con (y en voz alta). Como se menciona a continuación ^ (.) funciona . (Raramente, vuelvo a TPad o UltraEdit)
Peter.O
1
PD. a menudo puede usar Extended (vs RegEx ) como una solución alternativa para \ r y \ n, esto simula un inicio de línea. Además, por cierto, puede permanecer en la búsqueda Normal y activar Ver - Mostrar símbolo - Mostrar final de línea .. Aunque no aparecen (visualmente) en el campo Buscar, si selecciona CRLF primero, el autocebado de campo de búsqueda se activa cuando presiona CTRL + F, y se convierte en una búsqueda de varias líneas (pero no RegEx). No es muy diferente a la búsqueda extendida , pero me pareció interesante, y algunos lectores también pueden encontrarlo así. (Me encanta Npp :)
Peter.O
¿Por qué exactamente estás tratando de encontrar el comienzo de una nueva línea? ¿Quieres agregar algo al comienzo de cada línea? Eso nos ayudaría a responder la pregunta. Si está utilizando Notepad ++ para alejarse de una solución paga, tendrá que aprender sus peculiaridades y solucionarlas. No he tenido ningún problema al hacer esto, ya que Notepad ++ es muy bueno en muchas otras formas.
Joshua Nurczyk

Respuestas:

25

^ y $ son dos anclas en Regex, lo que significa que si desea reemplazar los caracteres literales ^y $necesita escapar de ellos, generalmente con una barra diagonal inversa ( \^, y \$).

Para encontrar el primer carácter en una línea, use ^.

La línea de inicio de anclaje ( ^) es una coincidencia de ancho cero, por lo que se combina con el. encontrará cualquier personaje al comienzo de una línea.

¿Quizás puedas explicar lo que realmente estás tratando de hacer?

John Weldon
fuente
8

Porque estos son caracteres especiales que representan el frente ( ^) y el final de la línea ( $). Intenta escapar de ellos con un \.

Ejemplos:

Haga coincidir "Cat" al comienzo de la línea:

^Cat

Haga coincidir "Cat" al final de la línea:

Cat$

Empareja "Gato" como la única cosa en una línea:

^Cat$

Haga coincidir un "$ 100" dentro de una línea:

\$100 

Aquí hay un enlace para los detalles sobre la coincidencia de expresiones regulares dentro de Notepad ++.

RC.
fuente
2
El enlace parece estar (efectivamente) roto.
Peter Mortensen el
5

He tenido el mismo problema yo mismo. Después de alguna prueba y error, puede lograr lo mismo haciendo lo siguiente:

Buscar: ^ (.)

Reemplazar: [la cadena que desea insertar] \ 1

Lo que esto hará es localizar y etiquetar el primer carácter de la línea, colocar la nueva cadena y colocar el carácter etiquetado después de ella.

Por ejemplo, necesitaba insertar una comilla simple al comienzo de cada línea:

Buscar: ^ (.)

Reemplazar: '\ 1

Puede hacer lo mismo para el final de la línea haciendo:

Buscar: (.) $

Reemplazar: \ 1 * [la cadena que desea agregar] *

Colita
fuente
1

Aquí está cómo hacerlo ...

Antes de:

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

Después:

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

Entonces. En el campo de búsqueda poner:

$_GET(.*])

En el campo de reemplazo poner:

htmlentities($_GET\1)
Lue
fuente
0

El problema parece haberse solucionado ahora.

En Notepad ++ v6.9.2 (que se ejecuta en Windows 7) obtengo ambos ^(inicio de línea) y $(final de línea) para trabajar.

Elias Mossholm
fuente