使用 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)