NotePad ++ - Mengapa menemukan ^ tidak berfungsi?


16

Saya mencoba untuk pindah dari TextPad , dan saya tidak bisa mendapatkan ekspresi reguler seperti ^dan $untuk diganti. Saya sudah mencentang kotak ekspresi reguler.

Apa yang saya lakukan salah?

Saya mencoba menemukan awal dari baris baru. Di TextPad, ia menemukan '^' dan memastikan ekspresi reguler diaktifkan. Dengan Notepad ++ itu tidak melakukan itu. Itu hanya mengatakan "Tidak ditemukan".


Saya telah menggunakan TextPad dan menemukan masalah yang sama ini mengganggu (dengan kata lain). Pada dasarnya, fungsi Regex Npp terhambat ketika dibandingkan dengan kebanyakan Regex lainnya. Ini berasal dari kenyataan bahwa Npp adalah abstraksi dari Scintilla Editor yang menggunakan RegEx berbasis tunggal :( - Kru Npp cukup paham masalah ini, tetapi (anehnya) berada di back-burner (masalah waktu dan sumber daya). $ berfungsi, tetapi mereka tidak punya ^ untuk bekerja multi-line (belum). Saya tahu batasan ini, dan bekerja dengan (dan aroud itu). Seperti disebutkan di bawah ^ (.) bekerja (Jarang, saya kembali ke TPad atau UltraEdit)
Peter.O

1
PS. Anda sering dapat menggunakan Extended (vs RegEx ) sebagai solusi untuk \ r dan \ n - ini semi-mimics sebagai permulaan. Selain itu, sebagai by-the-way, Anda dapat tetap dalam pencarian Normal dan aktifkan View - Show Symbol - Show End of Line .. Meskipun mereka tidak (secara visual) muncul di bidang-Find, jika Anda memilih CRLF pertama, bidang-prime auto-prime menendang ketika Anda menekan CTRL + F, dan itu dengan senang hati menjadi pencarian multi-line (tapi bukan RegEx). Tidak jauh berbeda dengan pencarian yang diperluas , tetapi menurut saya itu menarik, dan beberapa pembaca mungkin juga menemukannya. (Saya suka Npp :)
Peter.O

Mengapa tepatnya Anda mencoba menemukan awal dari baris baru? Apakah Anda ingin menambahkan sesuatu di awal setiap baris? Itu akan membantu kita benar-benar menjawab pertanyaan itu. Jika Anda menggunakan Notepad ++ untuk menjauh dari solusi berbayar, Anda harus mempelajari kebiasaannya dan mengatasinya. Saya tidak punya masalah melakukan ini, karena Notepad ++ sangat bagus dalam banyak hal lainnya.
Joshua Nurczyk

Jawaban:


25

^ dan $ keduanya adalah jangkar di Regex, yang berarti jika Anda ingin mengganti karakter literal ^dan $Anda harus menghindarinya, biasanya dengan garis miring terbalik ( \^, dan \$).

Untuk menemukan karakter pertama dalam satu baris, gunakan ^.

Jangkar garis awal ( ^) adalah kecocokan dengan lebar nol, sehingga menggabungkannya dengan. akan menemukan karakter apa pun di awal baris.

Mungkin Anda bisa menjelaskan apa yang sebenarnya Anda coba lakukan?


8

Karena ini adalah karakter khusus yang mewakili garis depan ( ^) dan ujung garis ( $). Cobalah melarikan diri dengan \.

Contoh:

Cocokkan "Kucing" di awal baris:

^Cat

Cocokkan "Kucing" di akhir baris:

Cat$

Cocokkan "Kucing" sebagai satu-satunya hal dalam satu baris:

^Cat$

Cocokkan "$ 100" dalam satu baris:

\$100 

Berikut adalah tautan untuk spesifikasi pencocokan ekspresi reguler di dalam Notepad ++.


2
Tautan tampaknya rusak (secara efektif).
Peter Mortensen

5

Saya sendiri pernah mengalami masalah yang sama. Setelah beberapa percobaan dan kesalahan Anda dapat mencapai hal yang sama dengan melakukan hal berikut:

Temukan: ^ (.)

Ganti: [string yang ingin Anda masukkan] \ 1

Apa yang akan dilakukan adalah mencari dan menandai karakter pertama dari baris, memasukkan string baru dan menempatkan karakter yang ditandai setelahnya.

Sebagai contoh, saya perlu memasukkan satu kutipan di awal setiap baris:

Temukan: ^ (.)

Ganti: '\ 1

Anda dapat melakukan hal yang sama untuk akhir baris dengan melakukan:

Temukan: (.) $

Ganti: \ 1 * [string yang ingin Anda tambahkan] *


1

Saya mendapatkannya.

Sebelum

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

Setelah

  • Albert
  • Lucas
  • Rober_Klein
  • Nelayan

Hapus setelah karakter atau teks

@ (. *) $

Hapus sebelum karakter atau teks

^ (. *) @

dot = any character
asterisk = zero or more times

1

Inilah cara melakukannya ...

Sebelum:

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

Setelah:

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

Begitu. Di kolom temukan cantumkan:

$_GET(.*])

Di kolom ganti put:

htmlentities($_GET\1)

0

Masalahnya tampaknya telah diperbaiki sekarang.

Di Notepad ++ v6.9.2 (berjalan di bawah Windows 7) saya mendapatkan keduanya ^(mulai dari baris) dan $(ujung baris) untuk bekerja.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.