Có cách nào để tìm kiếm một mẫu trong tài liệu MS Word không?


30

Có cách nào để tra cứu các mẫu trong tài liệu MS Word thay vì khớp chính xác không?

Tôi có một tài liệu mà tất cả các số thập phân đã được viết /thay vì .. Ví dụ, 1.02đã được viết là 1/02, bởi vì kiểu chữ Ba Tư sử dụng /thay vì .dấu thập phân.

/không chỉ được sử dụng cho số thập phân, và nó còn có các ứng dụng khác, ví dụ như phân số, tỷ lệ phần trăm, v.v., có cách nào để tìm một mẫu như N/Mtrong tài liệu từ, trong đó Nbiểu thị một số thập phân và Mcũng hiển thị một số thập phân khác không?


2
Làm thế nào đây không phải là một bản sao hơn 5 năm sau khi Super User ra mắt?
Peter Mortensen


Chà, thật khó để chuyển nó sang notepad nếu có văn bản khác ở giữa, giả sử rằng một người đang viết một bài báo (thay vào đó hãy sử dụng latex) để họ không thể chuyển nó ra khỏi từ, hoặc một cái gì đó có tính chất đó, họ sẽ mất tất cả các định dạng khác.
Charm_quark

1
Tôi vừa xác minh: các phiên bản MS Word mới nhất lưu trữ các tài liệu Word (* .docx) dưới dạng các tài liệu dựa trên XML được nén. Khi bạn biết cách cấu trúc này hoạt động, bạn có thể giải nén tệp * .docx của mình và thực hiện khớp mẫu trong các cấu trúc tệp XML kết quả.
Dominique

@Dominique thật thú vị. Không biết điều đó
codezombie

Câu trả lời:


12

như 'N / M' trong một tài liệu từ, trong đó N biểu thị một số thập phân và M cũng hiển thị một số thập phân khác

Chỉ cần cho một tìm kiếm, bạn có thể sử dụng ^#/^#như tham số tìm kiếm của bạn. Theo nhiều tùy chọn, và tìm thấy đặc biệt , có một số lựa chọn khác mà có thể hữu ích.

Nb : ^#, là một vị trí thập phân, vì vậy nếu bạn đang tìm kiếm cụ thể cho x / yy thì nó sẽ là ^#/^#^#v.v.

thay thế,

Đây là một tùy chọn tốt hơn, thực hiện tìm kiếm ([0-9])/([0-9])và thay thế bằng \1.\2và bật "sử dụng ký tự đại diện"


Cảm ơn. Điều này tìm thấy các hit. nhưng Word không chấp nhận ^ #. ^ # cho phần thay thế. Tôi muốn để lại các chữ số xung quanh '/' nguyên vẹn và thay thế '/' bằng '.'.
codezombie

1
hãy thử thực hiện tìm kiếm với cái này, "([0-9]) / ([0-9])" và thay thế bằng "\ 1. \ 2", lấy ra trích dẫn kép. và bật "sử dụng ký tự đại diện"
Charm_quark

37

Lời

Sử dụng triển khai biểu thức chính quy của Microsoft

Nhấn CTRL+ H»bấm vào Thêm » Kích hoạt Sử dụng ký tự đại diện

  • Tìm cái gì: ([0-9]{1,2})/([0-9]{2})
  • Thay bằng: \1.\2

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Đây trông giống như một mẫu tìm kiếm điên rồ, vì vậy hãy xem xét nó:

  • [0-9] là viết tắt của một giá trị số duy nhất (0,1,2,3,4,5,6,7,8 và 9)
  • {1,2}được sử dụng để đếm số lần xuất hiện của ký tự hoặc biểu thức trước đó. Trong trường hợp của chúng tôi, điều này có nghĩa là: Chỉ tìm kiếm một hoặc hai số .

    Thận trọng: Nếu bạn đang sử dụng một từ tiếng Đức, bạn phải sử dụng ;như một dấu phân cách thay vì,

  • /không có ý nghĩa đặc biệt. Nó thực sự tìm kiếm một dấu gạch chéo
  • ()dấu ngoặc tròn rất quan trọng. Họ chia mẫu thành các chuỗi logic để sau này chúng ta có thể sử dụng \1, \2... \ntrong mẫu thay thế của chúng ta. Bằng cách này, chúng tôi bảo tồn các giá trị

Đọc thêm về phần Các biểu thức, Từng mảnh trong bài viết hỗ trợ của Microsoft hoặc trên trang Word của Graham Mayor


VBA (giải pháp tốt hơn)

Tôi khuyên bạn nên sử dụng phương pháp VBA tuân thủ mặc định hơn từ các công cụ RegEx khác. Họ được ghi nhận tốt hơn và nhiều người có thể giúp bạn.

Macro này yêu cầu một mẫu RegEx để tìm kiếm trong toàn bộ tài liệu và thay thế nó bằng chuỗi đã cho của bạn.

Nhấn ALT+ F11để mở trình soạn thảo VBA. Dán mã ở bất cứ đâu và thực thi nó vớiF5

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
  • Tìm cái gì: (?!\d)/(?=\d)
  • Thay bằng: .

nhập mô tả hình ảnh ở đâynhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.