NotePad ++ - ^ bulma neden çalışmıyor?


16

Ben uzaklaşmaya çalışıyorum TextPad ve ben gibi normal ifadeler alamayan ^ve $değiştirilmesi. Kesinlikle normal ifade kutusunu işaretledim.

Neyi yanlış yapıyorum?

Yeni bir çizginin başlangıcını bulmaya çalışıyorum. TextPad'de '^' öğesini bulur ve normal ifadelerin etkinleştirildiğinden emin olur. Notepad ++ ile bunu yapmaz. Sadece "Bulunamadı" yazıyor.


TextPad kullandım ve aynı sorunu sinir bozucu buldum (hafifçe koymak için). Temelde, NPP en Regex işlevi olan bodur diğer birçok Regex-s comared zaman. Bu, Npp'in tek satır tabanlı bir RegEx kullanan Scintilla Editor'ün bir soyutlaması olduğu gerçeğinden kaynaklanıyor :( - Npp ekibi bu sorunun oldukça farkında, ancak (garip bir şekilde) arka yakıcıda (bir zaman ve kaynak sorunu). $ işe yarıyor, ama çok satırlı çalışmak için henüz ^ yok (henüz) .Bu sınırlamayı biliyorum ve (ve bunu uyandırmak) ile çalışmak. Aşağıda belirtildiği gibi ^ (.) çalışır (Nadiren, TPad veya UltraEdit'e geri dönüyorum)
Peter.O

1
PS. genellikle \ r ve \ n için geçici çözüm olarak Genişletilmiş ( RegEx'e karşılık ) kullanabilirsiniz - bu yarı satır başlangıcı taklit eder. Ayrıca, bu arada, Normal aramada kalabilir ve Görünüm - Sembolü Göster - Satır Sonunu Göster'i açabilirsiniz. Bul alanında (görsel olarak) görünmemelerine rağmen, Önce CRLF, CTRL + F tuşlarına bastığınızda Bul alanı otomatik başbakanı devreye girer ve oldukça mutlu bir şekilde çok satırlı (ancak RegEx değil) arama haline gelir. Genişletilmiş arama için çok farklı değil , ama ilginç buldum ve bazı okuyucular da bulabilir. (Npp seviyorum :)
Peter.O

Neden tam olarak yeni bir hattın başlangıcını bulmaya çalışıyorsunuz? Her satırın başına bir şey eklemek ister misiniz? Bu aslında soruyu cevaplamamıza yardımcı olacaktır. Ücretli bir çözümden uzaklaşmak için Notepad ++ kullanıyorsanız, onun tuhaflıklarını öğrenmeli ve etraflarında çalışmalısınız. Notepad ++ diğer birçok yönden çok iyi olduğu için bunu yaparken hiç sorun yaşamadım.
Joshua Nurczyk

Yanıtlar:


25

^ ve $ ifadelerinin ikisi de Regex'teki sabitlemelerdir, yani değişmez karakterleri değiştirmek ^ve $genellikle önde gelen ters eğik çizgi ( \^ve \$) ile bunlardan kaçmanız gerekir .

Satırdaki ilk karakteri bulmak için ^.

Başlangıç ​​çizgisi bağlantısı ( ^) sıfır genişlikli bir eşleşmedir, dolayısıyla. satırın başında herhangi bir karakter bulacaktır.

Belki aslında ne yapmaya çalıştığınızı açıklayabilirsiniz?


8

Çünkü bunlar ön ( ^) ve satır sonunu ( ) temsil eden özel karakterlerdir $. Onlarla bir kaçmayı deneyin \.

Örnekler:

Satırın başında "Cat" ile eşleş:

^Cat

Satırın sonundaki "Cat" ile eşleş:

Cat$

Bir satırdaki tek şey olarak "Kedi" yi eşleştirin:

^Cat$

Bir satırdaki "100 TL" ile eşleş:

\$100 

İşte Notepad ++ içinde normal ifade eşleşmesi ile ilgili ayrıntılar için bir bağlantı.


2
Bağlantı (etkin) kopmuş gibi görünüyor.
Peter Mortensen

5

Ben de aynı sorunu yaşadım. Biraz deneme yanılma işleminden sonra, aşağıdakileri yaparak aynı şeyi yapabilirsiniz:

Bul: ^ (.)

Değiştir: [eklemek istediğiniz dize] \ 1

Bunun yapacağı satırın ilk karakterini bulmak ve etiketlemek, yeni dizgiyi koymak ve etiketli karakteri arkasına koymaktır.

Örneğin, her satırın başına tek bir alıntı eklemem gerekiyordu:

Bul: ^ (.)

Değiştir: '\ 1

Aşağıdakileri yaparak satır sonu için de aynısını yapabilirsiniz:

Bul: (.) $

Değiştir: \ 1 * [eklemek istediğiniz dize] *


1

Anladım.

Önce

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

Sonra

  • köstek
  • Lucas
  • Rober_Klein
  • balıkçı

Karakter veya metinden sonra kaldır

@ (. *) $

Karakter veya metinden önce kaldır

^ (*.) '

dot = any character
asterisk = zero or more times

1

İşte nasıl yapılacağı ...

Önce:

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

Sonra:

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

Yani. On bulmak alan koymak:

$_GET(.*])

Açık yerini alan koymak:

htmlentities($_GET\1)

0

Sorun şu anda giderilmiş görünüyor.

Notepad ++ v6.9.2'de (Windows 7 altında çalışıyor) hem ^(satır başlangıcı) hem de (satır $sonu) çalışıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.