Word найти / заменить: добавить пробел в почтовый индекс с подстановочными знаками
Используя диалоговое окно "Найти и заменить" в 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, но это не работает
Любая помощь приветствуется.
3 ответа
\1 и т. Д. Заменяют выражения, и для того, чтобы указать, что что-то является выражением, вы заключаете его в (). Так вам нужно
([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])
затем
\1\2\3 \4\5\6
должно сработать. Я думаю, что есть ограничение на количество выражений, которые вы можете иметь (возможно, 9)
Я не могу найти какой-либо способ (в диалоговом окне "Найти и заменить" в 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]Так что, если ваша ситуация чувствительна к регистру, я думаю, вам нужно использовать "подстановочные знаки".
Очень простой способ: используйте функцию "Text to Columns" в Excel, а затем используйте формулу CONCATENATE для рекомбинации с пробелом в середине. Формула будет = КОНКАТЕНАТ (А1," ",B1)