มีวิธีการค้นหารูปแบบในเอกสาร MS Word หรือไม่?


30

มีวิธีในการค้นหารูปแบบภายในเอกสาร MS Word แทนการจับคู่ที่ตรงกันหรือไม่

ผมมีเอกสารที่ทศนิยมทั้งหมดได้รับการเขียนเป็นแทน/ .ตัวอย่างเช่น1.02เขียนเป็น1/02เพราะตัวอักษรภาษาเปอร์เซียใช้/แทน.จุดทศนิยม

เนื่องจาก/ไม่ได้ใช้เฉพาะกับทศนิยมและมีแอปพลิเคชันอื่น ๆ เช่นเศษส่วนเปอร์เซ็นต์ ฯลฯ มีวิธีการหารูปแบบเหมือนN/Mในเอกสารคำหรือไม่ซึ่งNแสดงทศนิยมและMยังแสดงทศนิยมอีกจำนวนหนึ่งด้วยหรือไม่


2
นี่ไม่ใช่สิ่งซ้ำกันมานานกว่า 5 ปีหลังจากผู้ใช้ขั้นสูงเปิดตัว?
Peter Mortensen


มันจะยากที่จะย้ายไปยัง notepad หากมีข้อความอื่นอยู่ตรงกลางสมมติว่ามีคนเขียนบทความในวารสาร (โปรดใช้ลาเท็กซ์แทน) ดังนั้นพวกเขาไม่สามารถย้ายมันออกไปจากคำหรือสิ่งที่มีลักษณะที่พวกเขา จะหลวมการจัดรูปแบบอื่น ๆ ทั้งหมด
Charm_quark

1
ฉันเพิ่งตรวจสอบแล้ว: เวอร์ชันล่าสุดของ MS Word จะจัดเก็บเอกสาร Word (* .docx) เป็นเอกสาร XML ที่ใช้ซิป เมื่อคุณรู้ว่าโครงสร้างนี้ทำงานอย่างไรคุณอาจคลายซิปไฟล์ * .docx ของคุณและทำการจับคู่รูปแบบในโครงสร้างไฟล์ XML ที่เป็นผลลัพธ์
Dominique

@ Dominique ที่น่าสนใจ ไม่ทราบว่า
codezombie

คำตอบ:


12

เช่น 'N / M' ภายในเอกสารคำโดยที่ N หมายถึงทศนิยมและ M ก็แสดงเลขทศนิยมอื่นอีกเช่นกัน

สำหรับการค้นหาคุณสามารถใช้^#/^#เป็นพารามิเตอร์การค้นหาของคุณ ภายใต้ตัวเลือกเพิ่มเติมและค้นหาแบบพิเศษมีตัวเลือกอื่น ๆ ที่สามารถช่วยได้

Nb: ^#เป็นทศนิยมหนึ่งตำแหน่งดังนั้นหากคุณกำลังมองหา x / yy โดยเฉพาะมันจะเป็นเช่นนั้น^#/^#^#เป็นต้น

จะเข้ามาแทนที่,

นี่เป็นตัวเลือกที่ดีกว่าดำเนินการค้นหาด้วย([0-9])/([0-9])และแทนที่ด้วย\1.\2และเปิดใช้งาน "use wildcard"


ขอบคุณ นี้พบความนิยม แต่ Word ไม่ยอมรับ ^ #. ^ # สำหรับชิ้นส่วนทดแทน ฉันต้องการให้ตัวเลขโดยรอบ '/' ไม่บุบสลายและแทนที่ '/' ด้วย '.'
codezombie

1
ลองทำการค้นหาด้วยสิ่งนี้ "([0-9]) / ([0-9])" และแทนที่ด้วย "\ 1 \ 2" ให้ใส่เครื่องหมายคำพูดคู่ และเปิดใช้งาน "use wildcards"
Charm_quark

37

คำ

ใช้การแสดงออกปกติของ Microsoft

กดCTRL+ H»คลิกที่เพิ่มเติม »เปิดใช้งานใช้สัญลักษณ์แทน

  • หาอะไร: ([0-9]{1,2})/([0-9]{2})
  • แทนที่ด้วย: \1.\2

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

นี่ดูเหมือนรูปแบบการค้นหาที่บ้าคลั่งดังนั้นลองตรวจสอบดู:

  • [0-9] ย่อมาจากค่าตัวเลขเดียว (0,1,2,3,4,5,6,7,8 และ 9)
  • {1,2}ใช้สำหรับนับจำนวนอักขระหรือนิพจน์ก่อนหน้า ในกรณีของเราที่นี้หมายถึง: ค้นหาเพียงหนึ่งหรือสอง numerics

    ข้อควรระวัง: ถ้าคุณใช้คำภาษาเยอรมันคุณต้องใช้;เป็นตัวคั่นแทน,

  • /ไม่มีความหมายพิเศษ มันค้นหาเครื่องหมายทับ
  • ()วงเล็บเหลี่ยมมีความสำคัญ พวกเขาแบ่งรูปแบบการลงในลำดับตรรกะเพื่อให้เราหลังจากนั้นสามารถใช้\1, \2... \nในรูปแบบของเราแทน วิธีนี้เรารักษาคุณค่า

อ่านเพิ่มเติมในส่วนการแสดงออกทีละชิ้นในบทความสนับสนุนของ Microsoft หรือบนเว็บไซต์ Word ของ Graham Mayor


VBA (ทางออกที่ดีกว่า)

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

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

กดALT+ F11เพื่อเปิดเครื่องมือแก้ไข VBA วางรหัสที่ใดก็ได้และรันด้วยF5

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        

End Sub
  • หาอะไร: (?!\d)/(?=\d)
  • แทนที่ด้วย: .

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

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