Как найти запятую без пробела в MS Word 2003?

2245
Kai Noack

Иногда я получаю документы от пользователей, которые не используют пробел после запятой, например «Смотри, это пример».

В Word 2003 есть ли подстановочный знак поиска, который я могу использовать, чтобы найти эти случаи?

Я пытался ,?и ,*без успеха, также ,\?и ,\*не работаю.

7

3 ответа на вопрос

18
duDE

You can use this pattern:

[!<]?,[!>]? 

That means: find a comma character between any characters, just not at the beginning of the word and not on the end of the word.

So that in the example below, one would find only the comma at "3,a" (but NOT those at: ",1" and "c,")

,123,abc, 
Это действительно для ** MS WORD **? Если ДА: Где я могу найти больше информации об этом? Hannu 9 лет назад 0
Да, это. http://office.microsoft.com/en-us/help/add-power-to-word-searches-with-regular-expressions-HA001087305.aspx duDE 9 лет назад 1
Благодарю. Я всегда считал, что функция поиска в Word «несовершенная» - теперь я обнаружил, что мои знания были недостаточными. Hannu 9 лет назад 11
@ Ханну: Рад помочь! Если вы нашли ответ полезным, напишите его;) duDE 9 лет назад 0
@duDE К сожалению, не работает в моем MS Word 2003. Может кто-нибудь еще подтвердить? - PS: я попробовал поиск на моем примере выше: «Смотри, это пример». Kai Noack 9 лет назад 0
@duDE работал для меня в Word 2010 до тех пор, пока я выбрал / проверил «Использовать подстановочные знаки» Halfwarr 9 лет назад 2
9
tumchaaditya

Я могу сказать вам более простой способ.
Просто замените все ,с, ,<space>где <space>означает пустое пространство, а затем заменить ,<space><space>с ,<space>на счет места, где пользователи положили пробел после запятой.

ПРЕДУПРЕЖДЕНИЕ. Если вы используете запятые в числах (либо в качестве разделителя тысяч, либо в виде десятичного разделителя), вам необходимо просмотреть документ, чтобы исправить числа, такие как «1200», которые теперь будут отображаться как «1, 200».

Почему вы имеете в виду, что этот путь проще? Требуется два шага вместо одного;) duDE 9 лет назад 2
Возможно, не проще, но это * гораздо легче запомнить, чем `[! <]?, [!>]?`, Особенно если вы не знакомы с RegEx. У меня было бы несколько шагов при использовании верхнего - найти документ Блокнота со строкой (или открыть эту страницу SE), скопировать строку, вставить строку, запустить. Не думайте, что я бы доверил своему мозгу вспомнить его наизусть хотя бы первые несколько раз. Kai 9 лет назад 5
Другой ответ действительно интересный, я не гуру Word, но очень приятно знать, что он поддерживает, так сказать, некоторые стандартные функции RegEx. Этот также является также отличным ответом для его простоты. David Zemens 9 лет назад 1
Я выбрал этот ответ как лучший, потому что решение duDe не работает с Word 2003, который был специально запрошен. Спасибо @tumchaaditya за этот хороший хак. Kai Noack 9 лет назад 0
0
ePandit

Для поиска и исправления запятых не следует пробел. Отметьте «Использовать подстановочные знаки» и используйте следующее:

Find what: (,)([! ]) Replace with: \1 \2 

(Примечание: в «Найти что» есть пробел после «!»)

Если ваш текст содержит языки / сценарии CTL (например, хинди / деванагари), указанные выше, не работает (не знаете почему?), Используйте это вместо (также будет работать с языками латинского сценария):

Find what: (,)([! ]?) Replace with: \1 \2 

Если ваш текст содержит стихи, то в конце строк (в строфе) может появляться запятая, за ней не следует пробел, поэтому следует добавить условие, чтобы избежать запятых в конце строк:

Find what: (,)([! ^l]?) Replace with: \1 \2 

Если следует избегать запятых в конце абзацев, добавьте ^ 13 (знак абзаца) с ^ l, однако вероятность этого мала, это возможно только тогда, когда машинистка дала разрывы абзацев (вместо разрывов строк) в конец каждой строки.

Еще один случай, если ваш текст содержит числа, содержащие запятую (для обозначения разделителя сотен, тысяч), используйте это, чтобы избежать нежелательных запятых:

Find what: ([!0-9],)([! ^l][!0-9]) Replace with: \1 \2 

Похожие вопросы