Используя диалоговое окно «Найти и заменить» в 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, а затем используйте формулу СЦЕПИТЬ для повторного объединения с пробелом в середине. Формула будет =СЦЕПИТЬ(A1," ",B1)