Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как заменить "i" на "и" в словах дореволюционного русского текста?
Форумы портала PHP.SU » PHP » Регулярные выражения » Как заменить "i" на "и" в словах дореволюционного русского текста?

Страниц (1): [1]
 

1. supmener - 19 Мая, 2015 - 10:41:16 - перейти к сообщению
Вот примеры слов:
Бiенiе, страданiе
То есть, как понимаю, надо чтобы i определялась, как рядом стоящая с русскими буквами и в таких словах заменялась.
В тексте также названия медикаментов на иностранных языках, их не надо трогать.
2. dcc0 - 19 Мая, 2015 - 11:24:08 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $s="Бiенiе, страданiе iё ";
  3. $m=preg_replace('/(i)([а-яё]{1,1})/iu', $2" , $s);
  4.  
  5. print_r($m);
  6.  
  7.  

(Добавление)
Но тут момент: в текстах 19 века может быть i в начале слова Iюль, в начале строки.
Заменит на маленькое "и".
Но это фактически единственное исключенiе.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $s="Бiенiе, страданiе iё iю. Iю";
  2. $m=preg_replace('/(i)([а-яё]{1,1})/u', $2" , $s);
  3.  
  4.  
  5. $n=preg_replace('/(\.\s)(I)([а-яё]{1,1})/u', "$1И$3" , $m);
  6. print_r($n);
  7.  
3. supmener - 19 Мая, 2015 - 12:25:42 - перейти к сообщению
Спасибо. Надо было наверное еще добавить пример, когда "i" на конце, как в слове "еслi".
4. dcc0 - 19 Мая, 2015 - 12:47:40 - перейти к сообщению
Если в Вашем тексте такое возможно, то да, надо ... но я не встречал i десятеричное на конце слова в текстах XVIII, XIX веков и начала XX века. С учётом того, что текст именно русский (московского диалекта).

Исходя из своих знаний, вариантов два: маленькое i в середине или начале слова - одна регулярка.
I в начале предложения - вторая регулярка.

Вот только вопрос: Вам только i заменить? В таких текстах еще бывает Фита, Ять, а еще Ерь и Ер на конце слов.
5. supmener - 19 Мая, 2015 - 13:03:58 - перейти к сообщению
Благодарю за информацию. Насчет других букв пока не знаю. В той книге, которую распознал в Finereader 8 (пока что несколько страниц на пробу), "ять" скопировал в буфер обмена, вставил в "поиск и замена", он там правда скопировался, как квадратик, но заменился на "е". Эта книга 1883 года (наверное не очень старая), пока что других букв в ней не увидел.

А вообще да, в будущем надо будет в других книгах и другие буквы заменять.

Раз пишите, что i на конце слова редко бывает, тогда получается не надо такой вариант.
6. dcc0 - 19 Мая, 2015 - 13:14:03 - перейти к сообщению
Цитата:
Раз пишите, что i на конце слова редко бывает, тогда получается не надо такой вариант.

В книге 1883 года - это практически исключено.
А вотъ Eр, Ерь и Ять с фитой точно будут. (Фита может встречаться реже)


Может быть еще I в верхнем регистре в середине предложения в именах собственных.
Iоаннъ

 

Powered by ExBB FM 1.0 RC1