Помогите с заменой GREP в Indesign

Статус
Закрыто для дальнейших ответов.

Ольга9911

Участник
Топикстартер
Сообщения
3
Реакции
0
Задание такое: дан текст, в нём есть какие то номера телефонов (найти как бы они не были написаны: хоть с кодом города, хоть без, а так запись следующая: +7 (еее) еее ее ее, либо +7 еее ее ее). а затем надо сделать следующее: если код города есть, тогда оставить его, если нет тогда надо добавить, чтобы был (987). вопрос: Как???

Первое задание я сделала, нахождение телефонов хоть в формате +7 (764) 678 67 67, хоть в +7 789 89 89 ищёт: [+]\d?[ ](\(?\d+\)?|[ ])?[ ]?(\d{3})[ ]?(\d{2})[ ]?(\d{2})
 
Ну, если ищет то, что вам надо, теперь пишите замену:
нумеруйте найденные выражения (они у вас в скобках) от $1 до $10. И пишите, на что менять (с учетом того, что в замены нужно включить часть найденного.
 
@NNN5, вы не постигли)))

в поле заменить ТС надо условное выражение))) "если нет кода->то вставить".
что в грепе невозможно.

задача имхо только в 2 прохода
 
Пацаны не против. В два - так в два.
 
  • Спасибо
Реакции: imma

Не по теме:
пацаны????
 
Ну, если ищет то, что вам надо, теперь пишите замену:
нумеруйте найденные выражения (они у вас в скобках) от $1 до $10. И пишите, на что менять (с учетом того, что в замены нужно включить часть найденного.
так я и спрашиваю как это сделать "с учетом того, что в замены нужно включить часть найдённого".
если в замены я пишу +7 ($1) $2 $3 $4, то он оставляет то что было изначально, это понятно, если изначально теелефон был в таком виде: +7 (444) 345 34 34, но если телефон в другом виде, без кода города: +7 789 78 78, то у меня в замене будет что то вроде этого: +7 (987) $2 $3 $4. так вопрос в чём: как то это прписывается в замене в виде условия?? или это невозможно? типо если $1=0, то пишем 987, если $1 задан каким то числом, то оставить. ???? я просто так понимаю что в замене услови не прописываются, и это просто физически не возможно. но я не уверена.
 
@NNN5, вы не постигли)))

в поле заменить ТС надо условное выражение))) "если нет кода->то вставить".
что в грепе невозможно.

задача имхо только в 2 прохода
это плохо. вы уверены что никак не прописывать условие, да?
 
Код:
from: "(?<=\+7) (?=\d\d\d \d\d \d\d)"
to:   " (987) "
Огород с опциональными пробелами нагородите сами, я не увидел этого в ТЗ, не знаю, зачем они.
 
уверен. либо вы неправильно сформулировали задачу.

если задача формулируется: "найти все телефоны без кода и вставить код",
тогда всё решаемо. простым запросом.
 
Последнее редактирование:
  • Спасибо
Реакции: NNN5 и Ольга9911
Статус
Закрыто для дальнейших ответов.