Как в тексте найти все русские буквы

  • Найти латиницу в Excel – функция
  • Найти кириллицу в Excel – функция
  • Как найти прописные буквы
    • Функция поиска прописных символов латиницы
    • Функция поиска прописных кириллических символов
    • Функция поиска любых прописных символов
  • Функции “Найти латиницу” и “Найти кириллицу” с помощью UDF
  • Найти латинские буквы в 2 клика
  • Найти слова, содержащие и кириллицу, и латиницу
    • С помощью регулярных выражений
    • В две итерации
  • Кейсы дальнейшего взаимодействия с данными
    • Удалить
    • Извлечь
    • Изменить регистр
    • Заменить символы

Важно: поскольку термин “найти” часто в сознании людей предполагает “найти и извлечь”, сразу оговоримся, что ниже именно булевая интерпретация поиска, иначе говоря, результата два – нашёл или не нашёл. Похожая, но все же другая задача – извлечь символы латиницы.

Текст, содержащий латиницу помимо кириллицы — довольно частое явление, и выявить, в какой раскладке текст, не всегда возможно визуально. Начертание многих символов в обеих раскладках идентично.

Когда нужно просто глазами обнаружить латиницу среди кириллических символов или наоборот, кириллицу в английском тексте, есть очень простое решение – использование неклассических шрифтов в Excel.

Например, Dubai Light сделает латиницу тоньше, Dubai Medium – жирнее кириллицы, Microsoft Himalaya – ниже, а Ink Free – выделит ее курсивом.

Но когда исходных данных много, важно не просто видеть, но и иметь возможность отфильтровать или отсортировать такие ячейки. Вариантов упростить и ускорить решение задачи несколько.

Задача поиска букв латинского алфавита в тексте – одна из нетривиальных в Excel, как и поиска любой длинной последовательности единичных символов. Как и в случае с поиском цифр, при обычном поиске придется перебирать все латинские буквы – а их 26, что ещё больше, чем цифр.

формула для поиска латиницы в Excel
Обнаружить латиницу – желаемый результат

Составная формула массива пригодится в случаях, когда не хочется или нет возможности пользоваться макросами или пользовательскими функциями (UDF):

=СЧЁТ(ПОИСК({"a":"b":"c":"d":"e":"f":"g":"h":"i":"j":"k":"l":"m":"n":"o":"p":"q":"r":"s":"t":"u":"v":"w":"x":"y":"z"};A1))>0

Здесь A1 — ячейка, которую мы хотим “проверить” на наличие в ней латиницы. Функция возвращает “ИСТИНА” или “ЛОЖЬ”. Важно отметить, что функция “ПОИСК” не является регистрозависимой, поэтому позволяет найти буквы в любом регистре.

Можно ли диапазон букв выразить иным способом? Да, формулой массива, а помогут в этом функция СИМВОЛ и функция СТРОКА:

{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1))>0}

Отличие этой формулы массива от предыдущей – её нужно вводить без фигурных скобок, они появятся при вводе формулы сочетанием Ctrl + Shift + Enter (вместо обычного Enter). В формуле выше, где явно прописаны все буквы, фигурные скобки вводятся вручную — это явное указание строкового массива.

Найти кириллицу в Excel – функция

Как вы, наверное, догадались, найти кириллицу в тексте можно аналогичным путем:

=СЧЁТ(ПОИСК({"а":"б":"в":"г":"д":"е":"ё":"ж":"з":"и":"й":"к":"л":"м":"н":"о":"п":"р":"с":"т":"у":"ф":"х":"ц":"ч":"ш":"щ":"ъ":"ы":"ь":"э":"ю":"я"};A1))>0

Или формулой массива с функцией СИМВОЛ:

{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1))>0}

Формула массива будет работать корректно, если языком системы для non-Unicode программ выбран русский.

Есть небольшая разница в двух этих формулах – вторая в отличие от первой использует 32 буквы, т.к. буква Ё не входит в диапазон символов.

Как найти прописные буквы

В отличие от “ПОИСК”, “НАЙТИ” – функция регистрозависимая, что позволяет найти буквы в том регистре, в котором они перечислены.

Функция поиска прописных символов латиницы

=СЧЁТ(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1))>0

Функция поиска прописных кириллических символов

=СЧЁТ(НАЙТИ({"А":"Б":"В":"Г":"Д":"Е":"Ё":"Ж":"З":"И":"Й":"К":"Л":"М":"Н":"О":"П":"Р":"С":"Т":"У":"Ф":"Х":"Ц":"Ч":"Ш":"Щ":"Ъ":"Ы":"Ь":"Э":"Ю":"Я"};A1))>0

Функция поиска любых прописных символов

Поможет вам найти в ячейке символы и кириллицы, и латиницы, если они написаны заглавными буквами.

=СЧЁТ(НАЙТИ({"А":"Б":"В":"Г":"Д":"Е":"Ё":"Ж":"З":"И":"Й":"К":"Л":"М":"Н":"О":"П":"Р":"С":"Т":"У":"Ф":"Х":"Ц":"Ч":"Ш":"Щ":"Ъ":"Ы":"Ь":"Э":"Ю":"Я":"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1))>0

Для поиска цифр в ячейке можно использовать такой же синтаксис.

Функции “Найти латиницу” и “Найти кириллицу” с помощью UDF

UDF (User-defined function, пользовательская функция) – тем, кто часто использует функции такого плана, помогут упростить синтаксис на листе, т.к. содержат калькуляции в коде.

Function найтиЛатиницу(txt As String) As Boolean 
найтиЛатиницу = txt Like "*[A-z]*" 
End Function
Function найтиКириллицу(txt As String) As Boolean 
найтиКириллицу= txt Like "*[А-яЁё]*" 
End Function

Найти латинские буквы в 2 клика

Максимально быстрый способ проверки на наличие латиницы в Excel доступен пользователям !SEMTools.
Порядок действий: скопировать диапазон, выделить скопированное и вызвать макрос в меню «Найти символы» группы «ОБНАРУЖИТЬ».

Найти латиницу в ячейках Excel без использования формул, с помощью надстройки !SEMTools

Найти слова, содержащие и кириллицу, и латиницу

Иногда простой поиск в ячейке латиницы и кириллицы не решает проблему, т.к. в ячейке изначально подразумевается наличие обоих видов символов. Например, “автомобиль Tоyоta”, “холодильник Siеmеns”. В двух этих примерах специально вставлены буквы из другого алфавита: Tоyоta содержит кириллическую “о”, а Siеmеns – кириллическую “e”. Начертание этих символов идентичное, но вот для роботов это совершенно разные символы.

Как с помощью Excel проверить отличие в написании букв на латинице или кириллице в отдельных словах? Формулы выше не отличат фразы, написанные корректно, от фраз, написанных некорректно, так как отдадут “ИСТИНА” всем фразам при проверке на кириллицу и латиницу.

Решить проблему можно, если искать по конкретным словам! В !SEMTools есть два решения этой задачи:

С помощью регулярных выражений

Процедура находится в меню “ОБНАРУЖИТЬ” – “Слова” – “По паттерну”. Паттерн REGEX позволяет решить задачу в один заход, т.к. в нем есть оператор “ИЛИ”.
Данное выражение означает, что нужно найти слова, в которых или после кириллического символа идет символ латиницы, или наоборот. При этом между символами могут быть внутри слова любые другие символы (цифры, дефисы и любые другие, кроме пробела).

([a-zA-Z].*[а-яА-ЯёЁ]|[а-яА-ЯёЁ].*[a-zA-Z])

Важно понимать, что сам паттерн применим к любой строке вне зависимости от количества слов в ней, но в рамках указанной процедуры !SEMTools применяется к отдельным словам.

Применяем регулярное выражение из этой статьи для поиска слов, содержащих кириллицу и латиницу

В две итерации

Данный метод совершенно логичен, но требует чуть больше времени. Нужно просто сначала извлечь слова, содержащие латиницу, а потом, уже среди извлеченных этим способом, искать слова, содержащие кириллицу.

Кейсы дальнейшего взаимодействия с данными

Найти слова, содержащие кириллицу, латиницу или оба вида символов одновременно, – только полдела. За этапом их обнаружения зачастую следуют дальнейшие действия.

Удалить

Иногда нужно целиком удалить слова, содержащие латиницу. Дело в том, что в них могут находиться другие символы – цифры, кириллица, дефисы и другие знаки. Они останутся, если удалить из текста латиницу и ничего больше.

Извлечь

Можно захотеть извлечь латиницу. В !SEMTools это можно делать с помощью регулярных выражений, в том числе извлечь слова, содержащие латиницу, чтобы посчитать количество слов и посмотреть на их структуру. Из каталога товаров, например, быстро извлекать бренды, написанные на английском языке.

Изменить регистр

Бывают ситуации, когда слова, содержащие латиницу, имеет смысл сделать с заглавной буквы — это касается все тех же иностранных брендов.

Заменить символы

И, наконец, бывают ситуации, когда нужно заменить кириллицу на латиницу – но и здесь возможны вариации: можно транслитерировать, сменить раскладку или заменить символы на похожие с ними на другом языке. Подробнее про последний кейс: заменить русские буквы на английские и наоборот.

Про каждый из этих кейсов можно почитать с соответствующем разделе сайта, в надстройке присутствуют макросы для быстрой обработки подобных ситуаций.

Часто сталкиваетесь с этой или похожими задачами при работе в Excel?
!SEMTools поможет решить их быстро и легко!

Какие существуют способы поиска кириллицы в файлах для последующей замены?

Хотелось бы через какой-либо редактор. phpshtorm не особо понравился в этом плане (ищет не во всех файлах и при этом всегда разное кол-во файлов — не смог понять из-за чего так происходит)


  • Вопрос задан

    более трёх лет назад

  • 344 просмотра


Комментировать

Пригласить эксперта


Ответы на вопрос 1

lidacriss

если только поиск, то, как мне кажется, тот же тотал коммандер очень неплохо справляется с этим
5a8d15726eaa2043702336.png


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


  • Показать ещё
    Загружается…

24 мая 2023, в 19:11

15000 руб./за проект

24 мая 2023, в 18:50

3000 руб./за проект

24 мая 2023, в 18:20

50000 руб./за проект

Минуточку внимания

Поиск кириллицы в латинице

Описание

Очень часто встречается ситуация когда в нике персонажа присутствуют символы разного алфавита. Некоторые символы латинского алфавита визуально не отличить от кириллицы. Например символы А, С, Р, Е и т.д. Иногда это делается умышленно, например, чтобы выдать себя за другого. Часто это приводит к неприятным проблемам.

Порой нам нужно проверить ник, чтобы узнать с кем мы имеем дело.

Мы сами иногда ошибаемся и вводим символы с другой раскладки, и не можем залогинится на сайте или сообщить свой ник в игре. Этот инструмент поможет вам в поиске такой проблемы.

Резултат поиска символов выделит их:

кириллица

латиница

Регулярка для поиска русских слов в тексте

Последнее время многим отечественным компаниям не хватает русскоязычного рынка и очевидным решением является расширение на европейские просторы. Но почему-то к русским товарам и услугам англоязычные граждане относятся предвзято. Поэтому не редко, для улучшения продаж, организации представляются европейскими. И зачастую одним из инструментов продаж служит сайт, который должен быть на английском языке. А поскольку европейская версия сайта, почти всегда, это копия русского, то нужно максимально качественно перевести ее на иностранный язык. И мало того, что перевод должен быть качественным, еще нужно эти переводы аккуратно добавить на сайт. И тут начинается самое интересное: где-то на страницах остаются русские строчки, в js или html остаются русские комментарии, в alt-ах к картинкам и ссылкам остаются русские подписи и прочие мелочи, которые выдают русский след. С такой проблемой уже несколько раз приходилось сталкиваться, довольно сложно все проверить и протестировать. Поэтому, когда пришел очередной клиент с подобной проблемой, было решено упростить и ускорить работу тестировщика — написать небольшой скрипт, который автоматически будет сканировать страницу на наличие русских символов и слов.

Поиск кириллических символов на странице с помощью php

Поскольку основным языком, с которым я работаю – это php, то и поиск было решено писать на нем. По сути, задача очень простая: получить html-код страницы или js-скрипта и проверить весь текст на вхождение русских символов. В данном случае, для поиска идеально подходят регулярные выражения, вот только составить нужное, это всегда для меня головная боль. И этот случай не исключение – провозиться пришлось несколько часов. Основная сложность заключалась в том, что регистронезависимый поиск с помощью регулярки просто так не работает с русскими символами. Чтобы научить регулярку искать нужные символы как в нижнем, так и верхнем регистре, нужно использовать модификатор «u», он позволяет работать с текстом в кодировке UTF-8. А также потребуется второй модификатор – «i», он отвечает за регистронезависимый поиск. Вся регулярка будет выглядеть вот так:

 /([а-я]+)/ui 

Такое регулярное выражение позволяет найти символы и целые слова, состоящие из русских символов в любом регистре.

Поиск русских слов в тексте с помощью php

Регулярка составлена, теперь дело техники. Остается только написать несколько строк кода, они приведены чуть ниже. Чтобы было понятнее, в коде добавлены комментарии:

// страница, на которой будем искать кириллицу
$url = "http://php.net/manual/ru/function.preg-match-all.php";
// получаем html-код страницы
$page_html = @file_get_contents($url);
// если удалось получить страницу
if($page_html){	
	$pattern = '/([а-я]+)/ui';
	// находим все русские слова
	preg_match_all($pattern, $page_html, $matches);
	// если что-то нашлось
	if(!empty($matches)){
		// выводим по одному слову
		foreach($matches[0] as $word){
			echo $word . "<br>";
		}
	}
}
 

Послесловие

Для более удобного поиска и работы со скриптом, можно добавить небольшую форму с полем для ввода одного или нескольких адресов страниц. Должно получиться что-то подобное:

<form action="#" method="post">
	<textarea name="urls"></textarea>
	<br>
	<input type="submit" value="find">
</form>

И сам код нужно будет немного дополнить:

// если была отправлена форма
if($_POST["urls"]){
	// получаем все адреса страниц, разделенные переносом строки
	$array_urls = explode("n", $_POST["urls"]);
	foreach($array_urls as $url){
		$url = trim($url); // уберем лишние пробелы
		// получаем html-код страницы
		$page_html = @file_get_contents($url);
		// если удалось получить страницу
		if($page_html){	
			$pattern = '/([а-я]+)/ui';
			// находим все русские слова
			preg_match_all($pattern, $page_html, $matches);
			// если что-то нашлось
			if(!empty($matches)){
				// выводим по одному слову
				foreach($matches[0] as $word){
					echo $word . "<br>";
				}
			}
		}
	}
}

Как в русском тексте в Excel или Word быстро найти английскую букву? А наборот, русскую в английском?

Чтобы в русском или, правильнее будет сказать, в кириллическом тексте в Excel или Word быстро найти английскую букву, измените шрифт на Algerian и латинские символы будут выделены жирным :

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

Задачу поиска в выделенном диапазоне ячеек кириллических символов также решает такой небольшой макрос для Microsoft Excel:

Как отличить русский символ от английского, если они выглядят одинаково?

Допустим такие символы, как «о» и «x» есть и в русской клавиатуре, и в английской, и с виду они не отличаются.

Как определить какой символ написан?

Если особо не усложнять, есть возможность использовать перевод в Alt-код. Например для Word’a выполняем такие действия: выделяем нужный нам символ, после чего нажимаем Alt+X; получаем набор цифр (повторное нажатие сочетания Alt+X для выделенных цифр возвращает символ обратно) Пример сравнения:

х (русский) — 0445

x (английский) — 0078

о (русский) — 043E

o (английский) — 006F

Вот и получаем возможность узнать где и какая. А если использовать как проверку для большого количества букв в тексте, то можно подобрать шрифт, который по разному отображает русский или английский символ. Как пример «Wide Latin» (символы слева напечатаны русской раскладкой):

Проверка наличия символов из другой раскладки

Kora-antica

Патологоанатом приготовился рассекать грудную полость. Нужно было остановить его немедленно, подать признаки жизни. И Аркадий открыл глаза.

В таежном поселке Гарь больница была оборудована сравнительно неплохо. Были даже рентген-кабинет и лаборатория.
В морг этой больницы доставили труп, который привез участковый полицейский из заброшенной сторожки, куда случайно зашли геологи.

Конкурс невероятных и феноменальных историй открыт!

Напишите самый абсурдный рассказ, чтобы выиграть приз более 50 000 рублей!

Прием работ — до 5 июня 2022 года включительно.

Авторы всех пожеланий в чате получат специальную марку «Меценат конкурса»

lucky_bee

DanilaKalashnikov5

Всем удачи. Работ много, интересно прочитать. PS Аdvego Спасибо! . Всем удачи. Работ много, интересно прочитать.

PS Аdvego Спасибо! / 100 руб.

prepod100500

rin8351

AleksejDmitriev97

Anastasia112

Kyzmakor

livv

Ekaterina916

MihailShevchenko

Наш бесплатный сервис позволит легко проверить ваш текст на наличие символов из другой раскладки. Удобная форма проверки русских букв в английском тексте, не только покажет такие символы, но и автоматически заменит их на правильные. Найдем в вашем тексте: — английские буквы в русской раскладке; — латиницу в русском тексте; — подстановку латинских букв в русские слова. Для получения результата достаточно скопировать исходный текст в поле формы и выбрать в нужный язык.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти идею для производства
  • Яндекс музыка как найти друзей
  • 0xffffffff как исправить
  • Осветлилась пятнами как исправить
  • Как найти точку зная начало координат

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии