<?php
/*дан текст, содержащий слова на русском и английском языках.
В некоторых словах часть русских букв заменена на похожие на них латинские, и наоборот.
Напиши программу, которая находит все такие слова,
выводит их и выделяет квадратными скобками первую замененную букву.*/
function displayWords( $pattern , $text ) {
foreach ( $matches [ 0 ] as $match ) {
echo "{$word} \n " ;
}
}
$text = "выпoлнение рабoт по комплекснoму благоустрoйству двoрoвой территoрии по адресу: ул.Гурьянoва д.2 к.2 congrаtulаtiоns олoлoлo" ;
$pattern_rus = '/\b([а-яё]+)([a-z]+)([а-яёa-z]*)/ui' ; //ищут только 1ю последовательность изменённых букв
$pattern_eng = '/\b([a-z]+)([а-яё]+)([а-яёa-z]*)/ui' ; //т.к. разбивают на слова и ориентируются по границе слова
$pattern = '/([а-яё]+)([a-z]+)/ui' ; //шаблон, не разбивающий строку и ищущий повторные ошибки в одном слове, но неверно обрабатывающий обратные случаи
echo "Русские слова с заменёнными буквами:\n " ;
displayWords( $pattern_rus , $text ) ;
echo "Английские слова с заменёнными буквами:\n " ;
displayWords( $pattern_eng , $text ) ;
echo "Без разбиения на слова:\n " ;
echo $highlights ;
?>
PD9waHAKCS8q0LTQsNC9INGC0LXQutGB0YIsINGB0L7QtNC10YDQttCw0YnQuNC5INGB0LvQvtCy0LAg0L3QsCDRgNGD0YHRgdC60L7QvCDQuCDQsNC90LPQu9C40LnRgdC60L7QvCDRj9C30YvQutCw0YUuIAoJ0JIg0L3QtdC60L7RgtC+0YDRi9GFINGB0LvQvtCy0LDRhSDRh9Cw0YHRgtGMINGA0YPRgdGB0LrQuNGFINCx0YPQutCyINC30LDQvNC10L3QtdC90LAg0L3QsCDQv9C+0YXQvtC20LjQtSDQvdCwINC90LjRhSDQu9Cw0YLQuNC90YHQutC40LUsINC4INC90LDQvtCx0L7RgNC+0YIuIAoJ0J3QsNC/0LjRiNC4INC/0YDQvtCz0YDQsNC80LzRgywg0LrQvtGC0L7RgNCw0Y8g0L3QsNGF0L7QtNC40YIg0LLRgdC1INGC0LDQutC40LUg0YHQu9C+0LLQsCwgCgnQstGL0LLQvtC00LjRgiDQuNGFINC4INCy0YvQtNC10LvRj9C10YIg0LrQstCw0LTRgNCw0YLQvdGL0LzQuCDRgdC60L7QsdC60LDQvNC4INC/0LXRgNCy0YPRjiDQt9Cw0LzQtdC90LXQvdC90YPRjiDQsdGD0LrQstGDLiovCgkKCWVycm9yX3JlcG9ydGluZygtMSk7CgltYl9pbnRlcm5hbF9lbmNvZGluZygndXRmLTgnKTsKCQogICAgZnVuY3Rpb24gZGlzcGxheVdvcmRzKCRwYXR0ZXJuLCAkdGV4dCl7CgkgICAgcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sICR0ZXh0LCAkbWF0Y2hlcyk7CiAgICAgICAgZm9yZWFjaCAoJG1hdGNoZXNbMF0gYXMgJG1hdGNoKXsKICAgICAgICAgICAgJHdvcmQgPSBwcmVnX3JlcGxhY2UoJHBhdHRlcm4sICckMVskMl0kMycsICRtYXRjaCk7CiAgICAgICAgICAgIGVjaG8gInskd29yZH1cbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgJHRleHQgPSAi0LLRi9C/b9C70L3QtdC90LjQtSDRgNCw0LFv0YIg0L/QviDQutC+0LzQv9C70LXQutGB0L1v0LzRgyDQsdC70LDQs9C+0YPRgdGC0YBv0LnRgdGC0LLRgyDQtNCyb9GAb9Cy0L7QuSDRgtC10YDRgNC40YJv0YDQuNC4INC/0L4g0LDQtNGA0LXRgdGDOiDRg9C7LtCT0YPRgNGM0Y/QvW/QstCwINC0LjIg0LouMiBjb25nctCwdHVs0LB0adC+bnMg0L7Qu2/Qu2/Qu28iOwoKICAgICRwYXR0ZXJuX3J1cyA9ICcvXGIoW9CwLdGP0ZFdKykoW2Etel0rKShb0LAt0Y/RkWEtel0qKS91aSc7IC8v0LjRidGD0YIg0YLQvtC70YzQutC+IDHRjiDQv9C+0YHQu9C10LTQvtCy0LDRgtC10LvRjNC90L7RgdGC0Ywg0LjQt9C80LXQvdGR0L3QvdGL0YUg0LHRg9C60LIKICAgICRwYXR0ZXJuX2VuZyA9ICcvXGIoW2Etel0rKShb0LAt0Y/RkV0rKShb0LAt0Y/RkWEtel0qKS91aSc7IC8v0YIu0LouINGA0LDQt9Cx0LjQstCw0Y7RgiDQvdCwINGB0LvQvtCy0LAg0Lgg0L7RgNC40LXQvdGC0LjRgNGD0Y7RgtGB0Y8g0L/QviDQs9GA0LDQvdC40YbQtSDRgdC70L7QstCwCiAgICAkcGF0dGVybiA9ICcvKFvQsC3Rj9GRXSspKFthLXpdKykvdWknOyAvL9GI0LDQsdC70L7QvSwg0L3QtSDRgNCw0LfQsdC40LLQsNGO0YnQuNC5INGB0YLRgNC+0LrRgyDQuCDQuNGJ0YPRidC40Lkg0L/QvtCy0YLQvtGA0L3Ri9C1INC+0YjQuNCx0LrQuCDQsiDQvtC00L3QvtC8INGB0LvQvtCy0LUsINC90L4g0L3QtdCy0LXRgNC90L4g0L7QsdGA0LDQsdCw0YLRi9Cy0LDRjtGJ0LjQuSDQvtCx0YDQsNGC0L3Ri9C1INGB0LvRg9GH0LDQuAogICAgZWNobyAi0KDRg9GB0YHQutC40LUg0YHQu9C+0LLQsCDRgSDQt9Cw0LzQtdC90ZHQvdC90YvQvNC4INCx0YPQutCy0LDQvNC4OlxuIjsKICAgIGRpc3BsYXlXb3JkcygkcGF0dGVybl9ydXMsICR0ZXh0KTsKICAgIGVjaG8gItCQ0L3Qs9C70LjQudGB0LrQuNC1INGB0LvQvtCy0LAg0YEg0LfQsNC80LXQvdGR0L3QvdGL0LzQuCDQsdGD0LrQstCw0LzQuDpcbiI7CiAgICBkaXNwbGF5V29yZHMoJHBhdHRlcm5fZW5nLCAkdGV4dCk7CiAgICBlY2hvICLQkdC10Lcg0YDQsNC30LHQuNC10L3QuNGPINC90LAg0YHQu9C+0LLQsDpcbiI7CiAgICAkaGlnaGxpZ2h0cyA9IHByZWdfcmVwbGFjZSgkcGF0dGVybiwgIiQxWyQyXSIsICR0ZXh0KTsKICAgIGVjaG8gJGhpZ2hsaWdodHM7CiAgICAgICAgICAgIAo/Pg==