Word найти / заменить: добавить пробел в почтовый индекс с подстановочными знаками

2

Используя диалоговое окно «Найти и заменить» в 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, но это не работает

Любая помощь приветствуется.

Mark
источник
Это может быть лучший вопрос для StackOverflow.com вместо этого (о программировании). Какой язык вы используете, и можете ли вы опубликовать код замены в своем вопросе?
Mat Carlson
1
Являются ли эти (ошибочные) почтовые индексы длиной всего шесть символов? Они в новой строке каждый раз?
nixda
Не программирование - просто использование MS Word 2003 для документа с около 30 страницами адресных меток -
Mark
то есть: г-н Джон Доу 123 Any Санкт-Торонто, ON M2N3X5
Mark
Да, почтовые индексы всегда 6 символов в длину - или я думаю, 7 с пробелом. Они обычно находятся на одной линии с городом, провинцией
Mark

Ответы:

2

\ 1 и т. Д. Заменяют выражения, и для того, чтобы указать, что что-то является выражением, вы заключаете его в (). Так вам нужно

([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9])

затем

\1\2\3 \4\5\6

должно сработать. Я думаю, что есть ограничение на количество выражений, которые вы можете иметь (возможно, 9)


источник
Или, проще говоря, заменить ([A-Z][0-9][A-Z])([0-9][A-Z][0-9]) с \1 \2, (И, да! Я не знаю, почему я не нашел это.)
Scott
0

Я не могу найти какой-либо способ (в диалоговом окне «Найти и заменить» в 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], поэтому, если ваша ситуация чувствительна к регистру, я думаю, вам нужно использовать «подстановочные знаки».

Scott
источник
Отлично - не знаю, что означает под Регулярное выражение, мне придется поискать его - но это сработало для меня! Спасибо
Mark
Это просто термин, который я придумал для обозначения таких кодов, как \1 включить подстроку того, что вы нашли (используя регулярное выражение) в замену. (В отличие от ^&, которое Word использует для включения все подходящая строка.)
Scott
0

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

Karen927
источник