Помогите с регулярным выражением для ФИО

  • Автор темы Автор темы altvip
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

altvip

Топикстартер
12 лет на форуме
Сообщения
284
Реакции
72
Очень много фамилий в тексте набрано вот так В. А. Иванов (то есть В._пробел_ А._пробел_Иванов). Хочется заменить на В._six space_А._пробел Иванов.

Можете помочь с выражением. Я честно не очень в них разбираюсь
 
Код:
(\u\.)\s(\u\.)\s(\u\l)
$1~%$2~%$3
 
найти:
(\u\.)(\ )(\u\.)(\ )(\u)
заменить на:
$1 $3 $5

(там пробелы внутри)
 
Код:
(\u\.)\s(\u\.)\s(\u\l)
$1~%$2~%$3
Предлагаю оптимизировать этот вариант до:
Код:
(\u\.)\s?(\u\.)\s?(?=\ul) => $1~%$2~%
В результате незахвата первых букв фамилии уменьшится нагрузка на движок грэп — запрос будет выполнен немного быстрее; в результате нечёткого захвата пробелов появляется возможность исправить возможные ошибки — их отсутствие.
 
  • Спасибо
Реакции: suntory
Большущее спасибо, всё получилось. Только я всё равно нчего не понял))))) Есть какой-то хоть учебник или статьи по GREP? Можете что-то посоветовать, чтоб хоть понимать что делаешь, что означают все эти доллары, бэкслэши, тильды и т.д))))
 
Спасибо, почитаю
 
Статус
Закрыто для дальнейших ответов.