使用 Microsoft Word 2003 中的「尋找和取代」對話框,我想搜尋地址清單中不含空格的郵遞區號(加拿大),例如,
M2N3X6
L4C2A9
K5G1S7
並在中間留一個空格:
M2N 3X6
L4C 2A9
K5G 1S7
這應該很簡單,但我在“替換為”部分遇到了一些麻煩:我已經弄清楚在“查找”字段中輸入[A-Z][0-9][A-Z][0-9][A-Z][0-9]
,但在“替換”框中,如何在中間添加空格,保留那裡的字符?我以為會是這樣的\1\2\3 \4\5\6
,但這不起作用
任何幫助表示讚賞。
答案1
\1 等替換表達式,並且為了指定某物是表達式,請將其括在 () 中。所以你需要
([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])
然後
\1\2\3 \4\5\6
應該管用。我認為你可以擁有的表達式數量是有限的(也許是 9 個)
答案2
我找不到任何方法(在 Microsoft Word 的“查找和替換”對話框中)進行完整的子正則表達式替換,就像在sed
.但我確實找到了解決您問題的多步驟解決方案。首先,確定一個未出現在資料中且不包含任何 Word 的「尋找和替換」中的特殊字元(例如「@
」或「#
」)的字串。 (或者,使用它們但轉義它們。)它可以是單個字符,例如“ |
”,只要它不出現在數據中即可。我假設您選擇了“ |
”。現在,
- 搜尋
[A-Z][0-9][A-Z][0-9][A-Z][0-9]
並替換為^&|
。這將以尾隨“ ”標記每個不合格的郵遞區號|
。 - 搜尋
[0-9][A-Z][0-9]|
並替換為^&
(帶有前導空格)。這將在您想要的位置插入空格。 - 然後搜尋所有出現的
|
並替換為空。
您可以在不使用通配符模式的情況下執行此操作:
^$^#^$^#^$^#
→^&|
。^#^$^#|
→^&
(甚至^?^?^?|
→^&
)。|
→ 什麼都沒有。
請注意^$
相當於[A-Za-z]
,所以如果您的情況區分大小寫,我想您需要使用“通配符”。
答案3
超簡單的方法:使用Excel中的「文字分列」功能,然後使用CONCATENATE公式重新組合,中間有一個空格。公式為 =CONCATENATE(A1," ",B1)