ค้นหาและแทนที่

คุณสามารถนำทางภายในเอกสารของคุณโดยใช้แป้นพิมพ์และเมาส์แต่ถ้าคุณมีหลายหน้าเ มันจะใช้เวลามากขึ้นเมื่อคุณต้องการแทนที่อักขระหรือคำที่คุณได้ใช้ในเอกสารของคุณ. ฟังก์ชัน"ค้นหาและแทนที่"ช่วยให้คุณสามารถหาลำดับของตัวอักษรในเอกสารและแทนที่ด้วยลำ.

Aspose.Wordsช่วยให้คุณสามารถค้นหาสตริงที่เฉพาะเจาะจงหรือรูปแบบนิพจน์ปกติในเอกสารของคุณและแทนที่ด้วยทางเลือกโดยไม่ต้องติดตั้งและใช้โปรแกรมประยุกต์เพิ่มเติมเช่นMicrosoft Word นี้จะเพิ่มความเร็วในการพิมพ์จำนวนมากและการจัดรูปแบบงานที่อาจช่วยให้คุณประหยัดชั่.

บทความนี้อธิบายถึงวิธีการใช้การแทนที่สตริงและนิพจน์ทั่วไปด้วยการสนับสนุนของอักขระ.

วิธีการค้นหาและแทนที่

Aspose.Wordsมีสองวิธีที่จะใช้การดำเนินการค้นหาและแทนที่โดยใช้ต่อไปนี้:

  1. Simple string replacement–เมื่อต้องการค้นหาและแทนที่สตริงที่เฉพาะเจาะจงกับอีกสตริงหนึ่งคุณต้องระบุสตริงการค้นหา(อักขระตัวเลขและตัวเลข)ที่จะถูกแทนที่ตามที่เกิดขึ้นทั้งหมดด้วยสตริงการแทนที่ที่ระบุอื่น สตริงทั้งสองต้องไม่มีสัญลักษณ์ คำนึงถึงว่าการเปรียบเทียบสายอักขระอาจเป็นตัวพิมพ์ใหญ่หรือคุณอาจไม่แน่ใจในการสะก.
  2. Regular expressions-เพื่อระบุนิพจน์ทั่วไปเพื่อค้นหาการจับคู่สตริงที่ตรงกันและแทนที่ตามนิพจน์ปกติของคุณ หมายเหตุว่าคำถูกกำหนดเป็นถูกสร้างขึ้นของอักขระตัวเลขเท่านั้น คำทั้งหมดเท่านั้นที่ถูกจับคู่และสตริงการป้อนข้อมูลที่เกิดขึ้นจะมีสัญลักษณ์แล้ววลีที่จะไม่พบ.

การแทนที่ด้วยสตริงแบบง่ายและนิพจน์ทั่วไปเพื่อระบุตัวแบ่งภายในค้นหาและแทนที่การดำเ.

Aspose.Wordsแสดงฟังก์ชันการค้นหาและแทนที่ด้วยเนมสเปซAspose.Words.Replacing คุณสามารถทำงานกับตัวเลือกมากมายในระหว่างกระบวนการค้นหาและแทนที่โดยใช้ชั้นเรียนFindReplaceOptions.

ค้นหาและแทนที่ข้อความโดยใช้การเปลี่ยนสตริงแบบง่าย

คุณสามารถใช้วิธีการReplaceอย่างใดอย่างหนึ่งเพื่อค้นหาหรือแทนที่สตริงที่เฉพาะเจาะจงและส่ง ในกรณีนี้คุณสามารถระบุสตริงที่จะถูกแทนที่สตริงที่จะแทนที่การเกิดขึ้นทั้งหมดไม่ว่าจะเป็นก.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการค้นหาสตริง"CustomerName“และแทนที่ด้วยสตริง*“James Bond”*:

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

before-simple-string-replacement-aspose-words-cpp

และหลังจากใช้การเปลี่ยนสตริงง่าย:

after-simple-string-replacement-aspose-words-cpp

ค้นหาและแทนที่ข้อความโดยใช้นิพจน์ทั่วไป

นิพจน์ทั่วไป(รีเอกซ์)เป็นรูปแบบที่อธิบายลำดับของข้อความ สมมติว่าคุณต้องการที่จะแทนที่การเกิดขึ้นคู่ทั้งหมดของคำที่มีการเกิดขึ้นคำเดียว จากนั้นคุณสามารถใช้นิพจน์ปกติต่อไปนี้เพื่อระบุรูปแบบคำสองคำ:([a-zA-Z]+) \1.

ใช้วิธีการReplaceอื่นๆเพื่อค้นหาและแทนที่ชุดอักขระเฉพาะโดยการตั้งค่าพารามิเตอร์Regexเป็นรูปแบบ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทนที่สตริงที่ตรงกับรูปแบบนิพจน์ปกติกับสตริงแทนที่ที่ระบุ:

คุณสามารถสังเกตเห็นความแตกต่างระหว่างเอกสารก่อนที่จะใช้การแทนสตริงด้วยนิพจน์:

before-replacement-with-regular-expressions-aspose-words-cpp

และหลังจากใช้สตริงแทนด้วยนิพจน์ปกติ:

after-replacement-with-regular-expressions-aspose-words-cpp

ค้นหาและแทนที่สตริงโดยใช้อักขระเมตา

คุณสามารถใช้เมตาอักขระในสตริงการค้นหาหรือสตริงการแทนที่ได้ หากข้อความหรือวลีใดวลีหนึ่งประกอบด้วยหลายย่อหน้า หลายส่วน หรือหลายหน้า เมตาอักขระบางตัวได้แก่ &p สำหรับการแบ่งย่อหน้า &b สำหรับการแบ่งส่วน &m สำหรับการแบ่งหน้า และ &l สำหรับการแบ่งบรรทัด.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทนที่ข้อความด้วยย่อหน้าและตัวแบ่งหน้า:

คุณสามารถค้นหาและแทนที่ข้อความในส่วนหัว/ส่วนท้ายของเอกสารคำโดยใช้ชั้นเรียนHeaderFooter.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทนที่ข้อความของส่วนหัวในเอกสารของคุณ:

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

before-applying-header-string-replacement-aspose-words-cpp

และหลังจากใช้เปลี่ยนสตริงส่วนหัว:

after-applying-header-string-replacement-aspose-words-cpp

ตัวอย่างรหัสที่จะแทนที่ข้อความของส่วนท้ายในเอกสารของคุณจะคล้ายกับตัวอย่างรหัสส่วน ทั้งหมดที่คุณต้องทำคือการแทนที่ต่อไปนี้สองบรรทัด:

auto header = headersFooters->idx_get(HeaderFooterType::HeaderPrimary);
header->get_Range()->Replace(u"Aspose.Words", u"Remove", options);

ด้วยต่อไปนี้:

auto footer = headersFooters->idx_get(HeaderFooterType::FooterPrimary);
footer->get_Range()->Replace(u"(C) 2006 Aspose Pty Ltd.", u"Copyright (C) Aspose Pty Ltd.", options);

คุณสามารถสังเกตเห็นความแตกต่างระหว่างเอกสารก่อนที่จะใช้สตริงท้ายแทน:

before-applying-footer-string-replacement-aspose-words-cpp

และหลังจากใช้สตริงส่วนท้ายแทน:

after-applying-footer-string-replacement-aspose-words-cpp

ไม่สนใจข้อความระหว่างค้นหาและแทนที่

ในขณะที่ใช้การดำเนินการค้นหาและแทนที่,คุณสามารถละเว้นบางส่วนของข้อความ. ดังนั้นบางส่วนของข้อความที่สามารถแยกออกจากการค้นหาและการค้นหาและแทนที่สามา.

Aspose.Wordsให้หลายคนค้นหาและแทนที่คุณสมบัติสำหรับการละเว้นข้อความเช่นIgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes, และIgnoreInserted.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการละเว้นข้อความภายในลบการแก้ไข:

ปรับแต่งค้นหาและแทนที่การดำเนินงาน

Aspose.Wordsมีหลายpropertiesเพื่อค้นหาและแทนที่ข้อความเช่นการใช้รูปแบบที่เฉพาะเจาะจงด้วยApplyFontและApplyParagraphFormatsคุณสมบัติโดยใช้การแทนที่ในรูปแบบการแทนที่ด้วยUseSubstitutionsคุณสมบัติและอื่นๆ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการเน้นคำเฉพาะในเอกสารของคุณ:

Aspose.Wordsช่วยให้คุณสามารถใช้อินเตอร์เฟซIReplacingCallbackเพื่อสร้างและเรียกวิธีการที่กำหนดเองในระหว่างการดำเนินการแทนที่ คุณอาจมีบางกรณีที่คุณต้องปรับแต่งการค้นหาและแทนที่การทำงานเช่นการแทนที่ข้อความที่ระบุด้วยนิพจน์ปกติด้วยHTMLแท็กดังนั้นโดยทั่วไปคุณจะใช้แทนที่ด้วยการแทรกHTML.

หากคุณต้องการแทนสตริงด้วยแท็กHTMLให้ใช้อินเทอร์เฟซIReplacingCallbackเพื่อปรับแต่งการดำเนินการค้นหาแ ให้เรามีหลายตัวอย่างของการใช้IReplacingCallback.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทนที่ข้อความที่ระบุด้วยHTML:

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการเน้นตัวเลขบวกที่มีสีเขียวและตัวเลขลบที่มีสีแดง:

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการเตรียมหมายเลขบรรทัดแต่ละบรรทัด: