Как я могу найти расширенные символы ASCII в файле с помощью Perl?

StackOverflow https://stackoverflow.com/questions/881931

Вопрос

Как найти в файле расширенные символы ASCII с помощью Perl?Кто-нибудь может получить сценарий?

..... заранее спасибо .....

Это было полезно?

Решение

Поскольку расширенные символы ASCII имеют значение 128 и выше , вы можете просто вызвать ord для отдельных символов и обработать те, которые имеют значение>= 128. Следующий код читает из стандартного ввода и печатает только расширенные символы ASCII:

родовое слово

Также можно распаковать вместе с chr также будет работать. Пример:

родовое слово

(Я уверен, что какой-нибудь гуру Perl может объединить оба эти слова в два однострочных ...)


Чтобы вместо этого напечатать номера строк, вы можете использовать следующее (это не удаляет дубликаты и будет иметь странное поведение при передаче Unicode):

родовое слово

(Спасибо, Яакову Белчу за подсказку по созданию кода кода.)

Другие советы

Первый печатаемый символ ASCII - это space (32).Последний печатаемый символ ASCII - это кодовый код (126).Так что я бы, наверное, использовал

родовое слово

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

Изменить: теперь печатается номер строки, а не сама строка.

Подложка:

родовое слово

для старых версий Perl

родовое слово

Ключевой вопрос: есть ли

использовать байты;

прагма должна действовать.Плакат должен решить это.Для выбора символов с кодами больше 127 достаточно следующего:

родовое слово

или

родовое слово

Ответ Гинек-Пичи-Выхода:

родовое слово

Предполагается, что проверяется только ограниченная часть непечатаемого

родовое слово

вместо этого.

А как насчет grep?

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top