เพิ่มตัวละครให้กับทุกหมายเลขผ่าน Regex ใน Notepad ++


10

ฉันมีคำถามพื้นฐานมากซึ่งฉันไม่สามารถไปไหนมาไหนได้ ฉันมีเอกสารข้อความเช่นนี้:

This is 5 a test!
This 3 is a test!
This is a 9 test!

และฉันต้องการให้มีลักษณะเช่นนี้:

This is 5c a test!
This 3c is a test!
This is a 9c test!

หมายถึงฉันต้องการเพิ่ม 'c' ให้กับทุกหมายเลขที่ฉันค้นหา ฉันลองสิ่งนี้:

Find what: [0-9]+]
Replace with: $1c
Search Mode: Regular expression

แต่เห็นได้ชัดว่าฉันกำลังทำอะไรผิดเพราะมันไม่ทำงาน ความช่วยเหลือจะได้รับการชื่นชม ขอบคุณ!


3
เพิ่งออกมาจากความอยากรู้: ทำไมคุณลอง[0-9]+]กับวงเล็บประหลาดที่ไม่มีใครเทียบเหล่านั้น
Heinzi

2
@Heinzi เดิมพันมันเป็นคำสะกดผิดในคำถามที่ได้รับใกล้ชิดของ+, ]และEnterบนแป้นพิมพ์จำนวนมาก
การแข่งขัน Lightness ใน Orbit

คำตอบ:


26

คุณเกือบทำให้ถูกต้อง

คุณต้องการค้นหา([0-9]+)
และแทนที่ด้วย$1c

คุณใช้( )เพื่อสร้างกลุ่มการดักจับ

หรือคุณสามารถแทนที่ด้วย$0cแทนจากนั้นคุณไม่จำเป็นต้องใช้กลุ่มการจับภาพ


2
มันใช้งานได้ดีอย่างสมบูรณ์แบบ ขอบคุณมาก;)
3877230

แค่สงสัยว่ามีความแตกต่างในรูปแบบนั้นและกำลังมองหา\d+อะไร?
BruceWayne

2
@BruceWayne ทั้งนี้ขึ้นอยู่กับ yoru รสชาติ regex, \dสามารถตรงกับตัวเลข Unicode จากสคริปต์อื่นโปรดทราบว่านี่ไม่ใช่กรณีของ PCRE ซึ่งเห็นได้ชัดว่าใช้ Notepad ++ ไม่ว่าในกรณีใดฉันมักจะชอบ\dถ้าฉันต้องการตัวเลขที่เป็นตัวเลข แต่[0-9]ถ้าฉันต้องการตัวอักษรเหล่านั้นอย่างชัดเจน (เช่นเมื่อคัดลอกรูปแบบที่กำหนดซึ่ง จำกัด ไว้ที่อักขระ ASCII)
บ๊อบ

แน่นอน \ d จะทำงานได้ดีเช่นกัน ฉันเก็บรูปแบบ [0-9] ไว้เพราะ OP ได้ลองแล้วและคำตอบอื่นใช้ \ d
LPChip

13
  • Ctrl+H
  • หาอะไร: \d+
  • แทนที่ด้วย: $0c
  • ตรวจสอบล้อมรอบ
  • ตรวจสอบการแสดงออกปกติ
  • Replace all

ตัวอย่างผลลัพธ์ที่ได้รับ:

This is 5c a test!
This 3c is a test!
This is a 9c test!

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