Notepad ++ Pindahkan teks antara tanda kurung ganda ke ujung garis untuk pola garis non standar

2

Jadi saya punya skrip, dengan garis yang dipisahkan oleh carriage return. Terkadang penulis mengacaukan dan meletakkan catatan (teks yang terdapat di dalam [[]]) di tengah atau awal baris ketika seharusnya berada di akhir. Karena ini bukan seragam, saya mengalami kesulitan menemukan cara untuk memindahkan catatan ini pada akhir baris yang muncul di dalam Notepad ++ secara otomatis, baik melalui makro atau menemukan regex & &; menggantikan.

Sederhananya, saya ingin cara otomatis dari ini:

hello [[emphasis]] my friends!
[[laugh]] how are you?

untuk:

hello my friends! [[emphasis]]
how are you? [[laugh]]
Deximus-Maximus
sumber
tidakkah kita membutuhkan "halo" di baris pertama?
msp9011
@ msp9011 woops, itu salah ketik. Anda benar
Deximus-Maximus
Apakah menggunakan excel untuk menyelesaikan hal ini diizinkan? || Jika bisa, Anda dapat menggabungkan MID (), FIND (), dan SUBSTITUTE () untuk mencapai ini.
p._phidot_

Jawaban:

0

Ini dapat dilakukan di Menggantikan dialog:

  • Temukan Apa = (?-s)(\[\[.*\]\])[\h]*(.*?)[\h]*$
  • Ganti dengan = $2 $1
  • Mode Pencarian = Ekspresi Reguler

Pada dasarnya, saya mencari [[...]] dan memasukkannya ke dalam $1, lalu semuanya setelah masuk $2. Ini kemudian menggantikan kedua sehingga $2 mengejar $1. Saya melakukan beberapa hal tambahan, seperti memastikannya diabaikan . matches newlines, yang seperti itu .* tidak akan membungkus garis

FYI: Jika Anda perlu mencari dan mengganti lebih lanjut ("pencocokan", "menandai", "bookmark", ekspresi reguler, "regex"), pelajari FAQ ini di Komunitas Notepad ++ dan dokumentasi yang ditunjuknya. Ini akan membantu Anda menggunakan ekspresi reguler di Notepad ++, dan akan membantu Anda memahami detail dari regex yang saya tulis.

PeterCJ
sumber