ใช้ RegEX เพื่อนำหน้าและต่อท้ายใน Notepad ++


88

ฉันมีรายการคำจำนวนมากในไฟล์ txt และฉันกำลังพยายามค้นหา regex และแทนที่ใน Notepad ++ ฉันต้องเพิ่มสตริงก่อนแต่ละบรรทัดและหลังแต่ละบรรทัด .. ดังนั้น:

wordone
wordtwo
คำสาม

กลายเป็น

สามารถ: "wordone"
สามารถ: "wordtwo"
สามารถ: "wordthree"

ฉันจะทำเช่นนี้ได้อย่างไร?


ขออภัยสตริงคำเหล่านั้นหมายถึงการแยกบรรทัด! ฉันพนันได้เลยว่าตอนนี้สับสน ...
zuk1

หวานช่วยฉันได้มาก googling :)
melaos

คำตอบ:


174

สมมติว่าเป็นคำที่เป็นตัวอักษรและตัวเลขคุณสามารถใช้:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

หรือหากคุณต้องการเพียงแค่เน้นเส้นและใช้ "แทนที่ทั้งหมด" & "ในส่วนที่เลือก" (โดยใช้การแทนที่เดียวกัน):

Search = ^(.+)$

^ชี้ไปที่จุดเริ่มต้นของบรรทัด
$ชี้ไปที่ท้ายบรรทัด

\1 จะเป็นแหล่งที่มาที่ตรงกันภายในวงเล็บ


ขอบคุณหลังจากค้นหาประมาณ 30 นาทีฉันมาถึงที่นี่เพื่อความสำเร็จ :)
dhaval

นิพจน์ Reg คือผู้ช่วยชีวิต ขอบคุณสำหรับความช่วยเหลือ
Techgration

ยอดเยี่ยม +1 สำหรับการอธิบาย
SSH

ว๊อท! นี่เป็นเพียงสิ่งที่ฉันต้องการ
Chuck Le Butt

1
ใน N ++ ล่าสุด^([A-Za-z0-9]+)$ไม่ส่งคืนข้อมูลที่ตรงกัน แต่ใช้ได้^(.+)$ในทุกสถานการณ์ ขอบคุณ!
Laurie Stearn

29

ทำไมคุณไม่ใช้ความสามารถในการแก้ไขหลายบรรทัดของ Notepad ++

กด Alt ค้างไว้ในขณะที่เลือกข้อความ (โดยใช้วิธีการคลิกและลากตามปกติ) เพื่อเลือกข้อความในหลายบรรทัด บางครั้งเรียกอีกอย่างว่าการแก้ไขคอลัมน์

คุณสามารถวางเคอร์เซอร์ที่จุดเริ่มต้นของไฟล์กด (ค้างไว้) Alt, Shift จากนั้นกดลูกศรลงหรือ PageDown เพื่อเลือกบรรทัดที่คุณต้องการนำหน้าด้วยข้อความ :-) ง่าย การแก้ไขหลายบรรทัดเป็นคุณสมบัติที่มีประโยชน์มากของ Notepad ++ นอกจากนี้ยังสามารถทำได้ใน Visual Studio ในลักษณะเดียวกันและใน Eclipse ด้วยการเปลี่ยนเป็นโหมดการเลือกบล็อกโดยการกด Alt + Shift + A จากนั้นใช้เมาส์เพื่อเลือกข้อความข้ามบรรทัด


1
+1 นี่ยอดเยี่ยมมากฉันไม่รู้ว่าคุณจะทำได้ เป็นไปได้หรือไม่ที่จะต่อท้ายบางสิ่งบางอย่างต่อท้ายแต่ละบรรทัดเมื่อความยาวของแต่ละบรรทัดแตกต่างกัน? ตัวอย่างเช่นเมื่อความกว้างของ "คอลัมน์" แตกต่างกันไปก็จะต้องเรียบร้อยหากคุณสามารถต่อท้ายข้อความในแต่ละบรรทัดได้ ฉันมีรายการฟังก์ชันและต้องต่อท้าย "();" แต่ละบรรทัด แต่ชื่อฟังก์ชันแต่ละชื่อมีความกว้างต่างกัน ฉันกำลังใช้ Macro เพื่อทำสิ่งนี้ขอบคุณ!
SSH

5
สำหรับการต่อท้ายน่าจะดีที่สุดเพียงแค่ใช้การค้นหา / แทนที่อย่างง่ายโดยใช้โหมดการค้นหา "ขยาย" คุณสามารถค้นหาการสิ้นสุดบรรทัดเช่น\r\nและแทนที่ด้วย<whatever you want to append>\r\n
Peter Perháč

นี่เป็นทางออกที่ยอดเยี่ยมจริงๆโดยเฉพาะอย่างยิ่งกับความคิดเห็นต่อท้ายด้านบน
Chuck Le Butt

2
สิ่งนี้มีประโยชน์สำหรับการขึ้นต้น แต่ไม่มีประโยชน์หากคุณต้องการลงรายการบัญชีความยาวผสม (ต่อท้าย) ฉันหวังว่า Notepad ++ จะมีคำสั่ง "Modify Lines" ในตัวเหมือนใน Notepad2 ซึ่งให้คุณเลือกบรรทัดกด Alt + M และเพิ่มข้อความก่อนและ / หรือหลังแต่ละบรรทัด
thdoan

23

นิพจน์ทั่วไปที่สามารถใช้ได้:

Find: \w.+
Replace: able:"$&"

เนื่องจาก$&จะให้สตริงที่คุณค้นหา

อ้างถึง: regexr


6
กล่าวขวัญถึง$&! \1ไม่ทำงานในทุกสภาพแวดล้อม
pfabri

$&คำตอบที่ดีเกี่ยวกับ มันทำงานใน SublimeText ด้วย
WesternGun

$&คำตอบที่ดีเกี่ยวกับ มันทำงานในรหัส VS ด้วย
P. Frank

5

ใช้มาโคร

มาโคร> เริ่มการบันทึก

ใช้แป้นพิมพ์เพื่อทำการเปลี่ยนแปลงในลักษณะที่ทำซ้ำได้เช่น

home> พิมพ์ "able"> end> ​​down arrow> home

จากนั้นกลับไปที่เมนูแล้วคลิกหยุดการบันทึกจากนั้นเรียกใช้มาโครหลาย ๆ ครั้ง

ที่ควรทำและไม่มีภาวะแทรกซ้อนตาม regex!


4
"ภาวะแทรกซ้อน" น่าจะหมายถึงอะไร? :-)
Tomalak

+1 เพื่อความสะดวกในการใช้งาน! ฉันต้องการต่อท้าย 'แท็บ' ที่ท้ายแต่ละบรรทัดในไฟล์และเคล็ดลับนี้ก็เป็นเคล็ดลับ
NateJ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.