Tìm / thay thế từ: thêm không gian vào mã bưu chính bằng ký tự đại diện


2

Sử dụng hộp thoại Tìm và Thay thế trong Microsoft Word 2003, Tôi muốn tìm kiếm danh sách địa chỉ mã bưu chính (Canada) không có chỗ trống trong đó, ví dụ:

M2N3X6
L4C2A9
K5G1S7

và đặt một khoảng trống ở giữa:

M2N 3X6
L4C 2A9
K5G 1S7

Điều này sẽ đơn giản, nhưng tôi gặp một chút rắc rối với phần "thay thế bằng": Tôi đã tìm ra rằng trong trường Tìm tôi nhập [A-Z][0-9][A-Z][0-9][A-Z][0-9], nhưng trong hộp Thay thế, làm cách nào để thêm khoảng trắng ở giữa, giữ lại các ký tự ở đó? Tôi nghĩ rằng nó sẽ là một cái gì đó như \1\2\3 \4\5\6, nhưng điều đó không làm việc

Bất kỳ trợ giúp đánh giá cao.


Đây có thể là một câu hỏi tốt hơn cho StackOverflow.com thay thế (đó là về lập trình). Bạn đang sử dụng ngôn ngữ nào và bạn có thể đăng mã thay thế trong câu hỏi của mình không?
Mat Carlson

1
Là những mã bưu chính (bị lỗi) luôn luôn chính xác sáu ký tự? Có phải họ ở trong một dòng mới mỗi lần?
nixda

Không lập trình - chỉ sử dụng MS Word 2003 trên tài liệu có khoảng 30 trang nhãn địa chỉ
Mark

tức là: Ông John Doe 123 Bất kỳ St. Toronto, ON M2N3X5
Mark

Có, mã bưu điện luôn dài 6 ký tự - hoặc tôi đoán 7 với khoảng trắng. Họ thường ở cùng tuyến với thành phố, tỉnh
Mark

Câu trả lời:


2

\ 1, vv thay thế các biểu thức và để xác định rằng một cái gì đó là một biểu thức, bạn đặt nó trong (). Vì vậy bạn cần

([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])

Sau đó

\1\2\3 \4\5\6

nên làm việc. Tôi nghĩ rằng có giới hạn về số lượng biểu thức bạn có thể có (9, có lẽ)


Hoặc, đơn giản hơn, thay thế ([A-Z][0-9][A-Z])([0-9][A-Z][0-9]) với \1 \2. .
Scott

0

Tôi có thể tìm thấy bất kỳ cách nào (trong hộp thoại Tìm và Thay thế Microsoft Word) để thực hiện thay thế regex đầy đủ, theo cách bạn có thể trong các chương trình như sed. Nhưng tôi đã tìm thấy một giải pháp nhiều bước cho vấn đề của bạn. Đầu tiên, xác định một chuỗi không xuất hiện trong dữ liệu của bạn và không chứa bất kỳ ký tự nào đặc biệt trong Word Từ Tìm và Thay thế (ví dụ: ‘ @ ' hoặc là ' # Cúc). (Cách khác, sử dụng chúng nhưng thoát khỏi chúng.) Nó có thể là một ký tự đơn, như | Tuy nhiên, miễn là nó không xuất hiện trong dữ liệu của bạn. Tôi sẽ cho rằng bạn đã chọn | Mùi. Hiện nay,

  1. Tìm kiếm [A-Z][0-9][A-Z][0-9][A-Z][0-9] và thay thế bằng ^&|. Điều này sẽ gắn thẻ cho mỗi mã bưu chính không phù hợp với dấu vết | Mùi.
  2. Tìm kiếm [0-9][A-Z][0-9]| và thay thế bằng  ^& (với một không gian hàng đầu). Điều này chèn không gian nơi bạn muốn nó.
  3. Sau đó tìm kiếm tất cả các lần xuất hiện của | và thay thế bằng không có gì.

Bạn có thể làm điều này mà không cần sử dụng chế độ ký tự đại diện:

  1. ^$^#^$^#^$^#^&|.
  2. ^#^$^#| ^& (hoặc thậm chí ^?^?^?| ^& ).
  3. | → không có gì.

Lưu ý rằng ^$ tương đương với [A-Za-z], Vì vậy, nếu tình huống của bạn là phân biệt chữ hoa chữ thường, tôi đoán bạn cần sử dụng các ký tự đại diện.


Tuyệt vời - không biết regex phụ nghĩa là gì tôi sẽ phải tìm kiếm nó - nhưng điều này hiệu quả với tôi! Cảm ơn bạn
Mark

Nó chỉ là một thuật ngữ tôi tạo ra để nói đến việc sử dụng các mã như \1 để bao gồm một chuỗi con của những gì bạn tìm thấy (sử dụng biểu thức chính quy) trong phần thay thế. (Trái ngược với ^&, mà Word sử dụng để bao gồm toàn bộ chuỗi phù hợp.)
Scott

0

Cách siêu đơn giản: sử dụng hàm "Chuyển văn bản thành cột" trong Excel và sau đó sử dụng công thức CONCATENATE để kết hợp lại với một khoảng trắng ở giữa. Công thức sẽ là = CONCATENATE (A1, "", B1)

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.