ฉันพยายามค้นหาค่าทั้งหมดด้วยรูปแบบต่อไปนี้:
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
และแทนที่ด้วยค่าภายในขอบเขต
ฉันใช้ regex ต่อไปนี้เพื่อค้นหารูปแบบ:
.*"\d+"
ฉันจะเปลี่ยนได้อย่างไร?
ฉันพยายามค้นหาค่าทั้งหมดด้วยรูปแบบต่อไปนี้:
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
และแทนที่ด้วยค่าภายในขอบเขต
ฉันใช้ regex ต่อไปนี้เพื่อค้นหารูปแบบ:
.*"\d+"
ฉันจะเปลี่ยนได้อย่างไร?
คำตอบ:
ใน Notepad ++ เพื่อแทนที่ให้กดCtrl+ Hเพื่อเปิดเมนูแทนที่
จากนั้นหากคุณทำเครื่องหมายที่ปุ่ม "นิพจน์ทั่วไป" และคุณต้องการให้การแทนที่ใช้ส่วนหนึ่งของรูปแบบการจับคู่ของคุณคุณต้องใช้ "การจับกลุ่ม" (อ่านเพิ่มเติมในGoogle ) ตัวอย่างเช่นสมมติว่าคุณต้องการจับคู่แต่ละบรรทัดต่อไปนี้
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
โดยใช้.*"\d+"
รูปแบบและต้องการเก็บเฉพาะตัวเลข จากนั้นคุณสามารถใช้กลุ่มการจับภาพในรูปแบบการจับคู่ของคุณโดยใช้วงเล็บ(
และเช่นว่า:)
.*"(\d+)"
ดังนั้นในการแทนที่ของคุณคุณสามารถเขียนได้$1
โดยที่ $ 1 อ้างอิงถึงมูลค่าของกลุ่มการจับภาพที่ 1 และจะส่งคืนหมายเลขสำหรับการจับคู่ที่สำเร็จแต่ละครั้ง หากคุณมีสองกลุ่มจับยกตัวอย่างเช่น(.*)="(\d+)"
, $1
จะกลับสตริงvalue
และ$2
จะกลับมาที่หมายเลข
ดังนั้นโดยใช้:
หา: .*"(\d+)"
แทนที่: $1
มันจะส่งคืนคุณ
4
403
200
201
116
15
โปรดทราบว่ามีวิธีอื่นอีกมากมายในการจับคู่รูปแบบดังกล่าวข้างต้น ตัวอย่างเช่นรูปแบบvalue="([0-9]+)"
จะดีกว่าเนื่องจากมีความเฉพาะเจาะจงมากขึ้นและคุณจะมั่นใจได้ว่าจะตรงกับบรรทัดเหล่านี้เท่านั้น เป็นไปได้ที่จะทำการแทนที่โดยไม่ต้องใช้กลุ่มการจับภาพ แต่นี่เป็นหัวข้อขั้นสูงกว่าเล็กน้อยดังนั้นฉันจะปล่อยไว้ตอนนี้ :)
$1
ไม่ได้ผลสำหรับฉัน ฉันใช้\1
แทนและได้ผล
\1
ใช้งานได้กับ Notepad ++ ทุกเวอร์ชัน $1
ใช้ได้เฉพาะในรุ่นที่ใหม่กว่าเท่านั้น
Hex Editor
ปลั๊กอิน ในโหมดมุมมองฐานสิบหก Notepad ++ จะไม่แสดงRegular Expression
ตัวเลือกสำหรับการค้นหา / แทนที่ ในโหมดดูข้อความฉันเห็นRegular Expression
ตัวเลือกสำหรับค้นหา / แทนที่ ฉันใช้ Notepad ++ เวอร์ชัน 6.9.2 ซึ่งเป็นเวอร์ชันปัจจุบันในขณะนี้
psxls ให้คำตอบที่ดี แต่ฉันคิดว่าเวอร์ชัน Notepad ++ ของฉันแตกต่างกันเล็กน้อยดังนั้นการจับภาพ $ (เครื่องหมายดอลลาร์) จึงไม่ทำงาน
ฉันมีNotepad ++ v.5.9.3และนี่คือวิธีที่คุณสามารถทำงานให้สำเร็จได้:
ค้นหารูปแบบ: value = \ "([0-9] *) \" และแทนที่ด้วย: \ 1 (สิ่งที่คุณต้องการทำในกลุ่มการจับภาพนั้น)
เช่น ล้อมรอบด้วยวงเล็บเหลี่ยม
[\ 1] -> จะสร้างมูลค่า = "[4]"
\1
ช่วยฉันเก็บหมายเลขไว้ แต่ลบใบเสนอราคาออก ฉันมีประมาณ 7400 บรรทัดในเอกสารเช่นtablename.columnname = '12345'
. คำพูดแรกนั้นง่ายต่อการลบคำพูดที่สองทำได้โดยใช้ของคุณ\1
ในกล่องข้อความแทนที่ ขอบคุณ +1
แทนที่ (.*")\d+(")
ด้วย $1x$2
x
"มูลค่าภายในขอบเขต" ของคุณอยู่ที่ไหน
ฉันมีNotepad ++ v6.8.8
ค้นหา : [([a-zA-Z])]
แทนที่ : [\ '\ 1 \']
จะสร้าง: $ array [XYZ] => $ array ['XYZ']
หา: value="([\d]+|[\d])"
แทนที่: \1
มันจะคืนคุณจริงๆ
4
403
200
201
116
15
js:
a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);