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".


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?


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 ++.


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] *


1

Lo tengo.

antes de

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

Después

  • Albert
  • Lucas
  • Rober_Klein
  • Pescador

Eliminar después de carácter o texto

PS

Eliminar antes del carácter o texto

^ (. *) @

dot = any character
asterisk = zero or more times

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)

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.