ลบส่วนของอักขระออกจากแต่ละบรรทัดใน Notepad++

ฉันกำลังพยายามลบช่วงอักขระออกจากแต่ละบรรทัดในแผ่นจดบันทึก

ป้อนข้อมูล:

  • 0 0000 Stringxx1 อธิบายสตริง1
  • 1 0001 Stringxx2 อธิบายString2.

เอาท์พุท:

  • สตริงxx1
  • สตริงxx2

ฉันได้อ่านสิ่งนี้แล้ว

ฉันสามารถเลือกสตริงที่มีช่องว่างได้ แต่ไม่แน่ใจว่าจะดำเนินการต่อไปอย่างไร โปรดทราบว่าคำที่ขึ้นต้นด้วย String อาจมีความยาวต่างกันได้

\sString.*?\s

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


person chebus    schedule 27.01.2016    source แหล่งที่มา


คำตอบ (1)


คุณสามารถใช้

^.*?(String\S*).*

และแทนที่ด้วย $1

คำอธิบาย:

  • ^ - จุดเริ่มต้นของสตริง
  • .*? - อักขระตั้งแต่ศูนย์ขึ้นไปนอกเหนือจากการขึ้นบรรทัดใหม่แต่ให้น้อยที่สุดเท่าที่จะทำได้ก่อนหน้านี้....
  • (String\S*) - (กลุ่ม 1) ลำดับอักขระตามตัวอักษร String ตามด้วยอักขระศูนย์หรือมากกว่านั้น นอกเหนือจากช่องว่าง (\S*)
  • .* - อักขระตั้งแต่ศูนย์ขึ้นไปนอกเหนือจากการขึ้นบรรทัดใหม่ (จนถึงท้ายบรรทัด)

ป้อนคำอธิบายรูปภาพที่นี่

person Wiktor Stribiżew    schedule 27.01.2016
comment
ขอบคุณมันได้ผล! เพียงคำถามเกี่ยวกับ \S* \S - ระบุว่าไม่ใช่ช่องว่าง * - ระบุว่าตรงกับ 0 อินสแตนซ์ขึ้นไปของอักขระก่อนหน้า ดังนั้นการรวมกันของ \S* บ่งชี้ว่าไม่ใช่อักขระเว้นวรรคทั้งหมด 0 รายการขึ้นไป - person chebus; 27.01.2016
comment
ฉันคิดว่าฉันได้อธิบายว่า อักขระเป็นศูนย์หรือมากกว่านั้นนอกเหนือจากช่องว่าง (\S*) - ใช่ คุณพูดถูก หากคุณต้องการเพียงอักขระคำ (ตัวอักษร ตัวเลข และขีดล่าง) ให้แทนที่ \S ด้วย \w - person Wiktor Stribiżew; 27.01.2016