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 "Найти и заменить" (например, "@' или же '#"). (В качестве альтернативы используйте их, но избегайте их.) Это может быть один символ, например '|', пока это не появляется в ваших данных. Я предполагаю, что вы выбрали "|". Сейчас,

  1. Сделать поиск для [A-Z][0-9][A-Z][0-9][A-Z][0-9] и заменить на ^&|, Это будет помечать каждый несоответствующий почтовый индекс с последующим "|".
  2. Ищи [0-9][A-Z][0-9]| и заменить на  ^& (с ведущим пробелом). Это вставит место, где вы хотите это.
  3. Затем найдите все вхождения | и заменить ничем.

Вы можете сделать это без использования подстановочного режима:

  1. ^$^#^$^#^$^#^&|,
  2. ^#^$^#| ^& (или даже ^?^?^?| ^&).
  3. | → ничего.

Обратите внимание, что ^$ эквивалентно [A-Za-z]Так что, если ваша ситуация чувствительна к регистру, я думаю, вам нужно использовать "подстановочные знаки".

Очень простой способ: используйте функцию "Text to Columns" в Excel, а затем используйте формулу CONCATENATE для рекомбинации с пробелом в середине. Формула будет = КОНКАТЕНАТ (А1," ",B1)

Другие вопросы по тегам