Как найти в строке коды символов вроде \x07 используя re Python
Вопрос задан
Изменён 1 год 9 месяцев назад
Просмотрен 215 раз
Имеется строка с закодированными управляющими символами ascii вроде «Информационное письмо \x07 Текст \x07 Ещё текст.» Надо из неё выловить \x07 и заменить на ‘ ‘. Следующий паттерн не отлавливает, хотя в онлайн проверяльщике показывает, что должен.
pattern = [\\]x[0-9a-fA-F]{2}
Использую Пайчарм и Пайтон 3.8. Подскажите, плиз, как отлавливать такие штуки.
- python
- python-3.x
- регулярные-выражения
- ascii
6
Если нужно найти символы с кодами меньше 0x20, можно просто указать в регулярном выражении эти символы в виде кодов
как диапазон:
import re text = "Информационное письмо \x02 Текст \x07 Ещё текст." pattern = r"[\x00-\x19]" print(re.findall(pattern, text)) print(re.sub(pattern, '', text))
Вывод:
['\x02', '\x07'] Информационное письмо Текст Ещё текст.
Но правда будет реагировать и на '\n'
, например (код 0x0a), и другие управляющие символы, типа таба '\t'
, возврата каретки '\r'
и т.д. — у них у всех код меньше 0x20.
3
Судя по комментарию автора, нужно просто фильтровать все ASCII
символы, код которых меньше, чем код «пробела» (32). Можно это сделать так:
s = "Информационное письмо \x07 Текст \x07 Ещё текст. \x02 \x1f И прочее \x0d и прочее" print(''.join(ch for ch in s if ord(ch) >= 32))
Или через filter
print(''.join(filter(lambda x: ord(x) >= 32, s)))
Вывод:
Информационное письмо Текст Ещё текст. И прочее и прочее
1
Решение проблемы с помощью регулярок заключается в функции repr().
old = repr("Информационное письмо \x07 Текст \x07 Ещё текст.") pattern = r'\\x[0-9a-fA-F]{2}' new = re.sub(pattern, '', old) print(old) print(new)
Вывод:
'Информационное письмо \x07 Текст \x07 Ещё текст.' 'Информационное письмо Текст Ещё текст.'
1
Зарегистрируйтесь или войдите
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Спецификации восьмеричных и шестнадцатеричных символов
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Последовательность \ooo

Аналогичным образом последовательность \xhhh позволяет указать любой символ в кодировке ASCII в качестве шестнадцатеричного кода знака. Например, символ backspace (ASCII) можно представить как обычную escape-последовательность C ( \b), закодировать как восьмеричный код \010 или шестнадцатеричный код \x008.
В восьмеричной escape-последовательности можно использовать только цифры от 0 до 7. Длина восьмеричной escape-последовательности не может превышать три цифры, и такие последовательности заканчиваются на первом символе, который не является цифрой в восьмеричном формате. Хотя нет необходимости использовать все три цифры, необходимо использовать по крайней мере одну. Например, для символа backspace по таблице ASCII восьмеричное представление имеет вид \10, а для буквы A — \101.
Аналогичным образом, необходимо использовать хотя бы одну цифру для шестнадцатеричной escape-последовательности, но можно опустить вторую и третью цифры. Следовательно, шестнадцатеричную escape-последовательность для символа backspace можно указать как \x8, \x08 или \x008.
Значение восьмеричной или шестнадцатеричной escape-последовательности должно находиться в диапазоне представимых значений для типа unsigned char
для символьной константы и типа wchar_t
для расширенной символьной константы. Дополнительные сведения о расширенных символьных константах см. в статье Многобайтовая кодировка и расширенные символы.
В отличие от восьмеричных escape-констант количество шестнадцатеричных цифр в escape-последовательности не ограничено. Шестнадцатеричная escape-последовательность заканчивается на первом символе, который не является цифрой в восьмеричном формате. Поскольку шестнадцатеричные цифры включают буквы от a до f, убедитесь, что escape-последовательность заканчивается на соответствующей цифре. Чтобы избежать путаницы, можно добавить определения восьмеричных или шестнадцатеричных символов в определение макроса.
#define Bell '\x07'
В случае шестнадцатеричных значений можно разделить строку для четкого отображения правильного значения.
"\xabc" /* one character */ "\xab" "c" /* two characters */
Константы символов в C
Alt Codes Список Alt Key Codes Symbols
Список всех Alt Codes для специальных символов и символов . Узнайте, как использовать коды клавиш Alt? для специальных символов и символов.
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
☺ | 1 | @ | 64 | ⌂ | 127 |
☻ | 2 | A | 65 | Ç | 128 |
♥ | 3 | B | 66 | ü | 129 |
♦ | 4 | C | 67 | é | 130 |
♣ | 5 | D | 68 | â | 131 |
♠ | 6 | E | 69 | ä | 132 |
• | 7 | F | 70 | à | 133 |
◘ | 8 | G | 71 | å | 134 |
○ | 9 | H | 72 | ç | 135 |
◙ | 10 | I | 73 | ê | 136 |
♂ | 11 | J | 74 | ë | 137 |
♀ | 12 | K | 75 | è | 138 |
♪ | 13 | L | 76 | ï | 139 |
♫ | 14 | M | 77 | î | 140 |
☼ | 15 | N | 78 | ì | 141 |
► | 16 | O | 79 | Ä | 142 |
◄ | 17 | P | 80 | Å | 143 |
↕ | 18 | Q | 81 | É | 144 |
‼ | 19 | R | 82 | æ | 145 |
¶ | 20 | S | 83 | Æ | 146 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
╛ | 190 | ² | 253 | Â | 0194 |
┐ | 191 | ■ | 254 | Ã | 0195 |
└ | 192 | spc | 255 | Ä | 0196 |
┴ | 193 | € | 0128 | Å | 0197 |
┬ | 194 | ‚ | 0130 | Æ | 0198 |
├ | 195 | ƒ | 0131 | Ç | 0199 |
─ | 196 | „ | 0132 | È | 0200 |
┼ | 197 | … | 0133 | É | 0201 |
╞ | 198 | † | 0134 | Ê | 0202 |
╟ | 199 | ‡ | 0135 | Ë | 0203 |
╚ | 200 | ˆ | 0136 | Ì | 0204 |
╔ | 201 | ‰ | 0137 | Í | 0205 |
╩ | 202 | Š | 0138 | Î | 0206 |
╦ | 203 | ‹ | 0139 | Ï | 0207 |
╠ | 204 | Œ | 0140 | Ð | 0208 |
═ | 205 | Ž | 0142 | Ñ | 0209 |
╬ | 206 | ‘ | 0145 | Ò | 0210 |
╧ | 207 | ‘ | 0146 | Ó | 0211 |
╨ | 208 | “ | 0147 | Ô | 0212 |
╤ | 209 | ” | 0148 | Õ | 0213 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
§ | 21 | T | 84 | ô | 147 |
▬ | 22 | U | 85 | ö | 148 |
↨ | 23 | V | 86 | ò | 149 |
↑ | 24 | W | 87 | û | 150 |
↓ | 25 | X | 88 | ù | 151 |
→ | 26 | Y | 89 | ÿ | 152 |
← | 27 | Z | 90 | Ö | 153 |
∟ | 28 | [ | 91 | Ü | 154 |
↔ | 29 | \ | 92 | ¢ | 155 | 94 | ¥ | 157 |
SPC | 32 | _ | 95 | ₧ | 158 | 33 | ` | 96 | ƒ | 159 |
» | 34 | a | 97 | á | 160 |
# | 35 | b | 98 | í | 161 |
$ | 36 | c | 99 | ó | 162 |
% | 37 | d | 100 | ú | 163 |
& | 38 | e | 101 | ñ | 164 |
‘ | 39 | f | 102 | Ñ | 165 |
( | 40 | g | 103 | ª | 166 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
╥ | 210 | • | 0149 | Ö | 0214 |
╙ | 211 | – | 0150 | × | 0215 |
╘ | 212 | — | 0151 | Ø | 0216 |
╒ | 213 | ˜ | 0152 | Ù | 0217 |
╓ | 214 | ™ | 0153 | Ú | 0218 |
╫ | 215 | š | 0154 | Û | 0219 |
╪ | 216 | › | 0155 | Ü | 0220 |
┘ | 217 | œ | 0156 | Ý | 0221 |
┌ | 218 | ž | 0158 | Þ | 0222 |
█ | 219 | Ÿ | 0159 | ß | 0223 |
▄ | 220 | spc | 0160 | à | 0224 |
▌ | 221 | ¡ | 0161 | á | 0225 |
▐ | 222 | ¢ | 0162 | â | 0226 |
▀ | 223 | £ | 0163 | ã | 0227 |
α | 224 | ¤ | 0164 | ä | 0228 |
ß | 225 | ¥ | 0165 | å | 0229 |
Γ | 226 | ¦ | 0166 | æ | 0230 |
π | 227 | § | 0167 | ç | 0231 |
Σ | 228 | ¨ | 0168 | è | 0232 |
σ | 229 | © | 0169 | é | 0233 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
) | 41 | h | 104 | º | 167 |
* | 42 | i | 105 | ¿ | 168 |
+ | 43 | j | 106 | ⌐ | 169 |
, | 44 | k | 107 | ¬ | 170 |
— | 45 | л | 108 | ½ | 171 | 46 | m | 109 | ¼ | 172 |
/ | 47 | n | 110 | ¡ | 173 |
0 | 48 | o | 111 | « | 174 |
1 | 49 | стр | 112 | » | 175 |
2 | 50 | q | 113 | ░ | 176 |
3 | 51 | r | 114 | ▒ | 177 |
4 | 52 | s | 115 | ▓ | 178 |
5 | 53 | t | 116 | │ | 179 |
6 | 54 | u | 117 | ┤ | 180 |
7 | 55 | v | 118 | ╡ | 181 |
8 | 56 | w | 119 | ╢ | 182 |
9 | 57 | x | 120 | ╖ | 183 |
: | 58 | y | 121 | ╕ | 184 |
; | 59 | z | 122 | ╣ | 185 |
< | 60 | { | 123 | ║ | 186 |
Symbol | AltCode | Symbol | Альтернативный код | Символ | Альтернативный код | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
µ | 230 | ª | 01070 902323 0234 | ||||||||
τ | 231 | « | 0171 | ë | 0235 | ||||||
Φ | 232 | ¬ | 0172 | ì | 0236 | ||||||
Θ | 233 | ® | 0174 | í | 0237 | ||||||
Ω | 234 | ¯ | 0175 | î | 0238 | ||||||
δ | 235 | ° | 0176 | ï | 0239 | ||||||
∞ | 236 | ± | 0177 | ð | 0240 | ||||||
φ | 237 | ² | 0178 | ñ | 0241 | ||||||
ε | 238 | ³ | 0179 | ò | 0242 | ||||||
∩ | 239 | ´ | 0180 | ó | |||||||
≡ | 240 | µ | 0181 | ô | 0244 | ||||||
± | 241 | ¶ | 0182 | õ | 0245 | ||||||
≥ | 242 | · | 0183 | ö | 0246 | ||||||
≤ | 243 | ¸ | 0184 | 424242424242424242424242424242424242424242424242424242424242424242424242424242442424424424424242н 4002442424242424 | 424 | 4 | 4242442442424242н.![]() | ¹ | 0185 | ø | 0248 |
⌡ | 245 | º | 0186 | ù | 0249 | ||||||
÷ | 246 | » | 0187 | ú | 0250 | ||||||
≈ | 247 | ¼ | 0188 | û | 0251 | ||||||
° | 248 | ½ | 0189 | ü | 0252 | ||||||
∙ | 249 | ¾ | 0190 | ý | 0253 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode | |
---|---|---|---|---|---|---|
= | 61 | | | 124 | ╗ | 187 | |
> | 62 | } | 125 | ╝ | 188 | 0024 |
? | 63 | ~ | 126 |
Symbol | AltCode | Symbol | AltCode | Symbol | AltCode |
---|---|---|---|---|---|
· | 250 | ¿ | 0191 | þ | 0254 |
√ | 251 | 0192 | ÿ | 0255 | 0255 | 9008 90080255 | 9008 9.252 | Á | 0193 |
IBM разработала метод размещения на экране символов, которые нельзя набрать с клавиатуры: символ с помощью цифровой клавиатуры. Системой, которая интерпретирует это действие и помещает соответствующий символ в положение курсора, является BIOS.
Эти коды стали настолько популярными, что Microsoft, хотя и разработала новый набор кодов, решила их сохранить. Новый набор был назван ANSI (позже изменен на коды Windows), а старые назывались кодовыми страницами OEM (производитель оригинального оборудования). Трехзначные коды представляют собой коды OEM. Коды с предшествующим 0 представляют собой новые коды ANSI.
За последние два десятилетия Unicode был принят многими системами. После перехода Windows на Unicode было желательно ввести все символы Unicode одним и тем же методом, и это было достигнуто некоторыми приложениями, но не могло быть распространено на всю систему. Проблемы совместимости со старыми кодами ANSI препятствуют вводу всех символов Unicode.
Некоторые советы:
- Производимые символы могут различаться в зависимости от настройки кодовой страницы OEM.
- Чтобы ввести символ, используя его значение Alt Code, должен быть включен Num lock. В противном случае могут возникнуть нежелательные результаты. г.
- Цифровая клавиатура есть не на каждом ноутбуке. Чтобы использовать их, необходимо активировать Numpad, нажав клавишу Fn.
Как ввести символ Alt на клавиатуре?
Например, давайте наберем символ градусов , используя его Alt Code на клавиатуре.
- Убедитесь, что вы включили NumLock,
- нажмите и удерживайте клавишу Alt ,
- введите значение альтернативного кода символа градуса 0 1 7 6 на цифровой клавиатуре ,
- отпустите клавишу Alt , и вы получите символ ° градусов .
** Вышеупомянутая процедура неприменима для MacOS.
Для получения дополнительной информации о том, как использовать символы, смайлики, пожалуйста, ознакомьтесь с нашим Как использовать Alt-коды? страница.
👉 😚 💯 😹 👀 Смайлики Smiley Face Symbols
Alt Codes »
Разные символы »
Смайлики Smiley Symbols
Альтернативный код смайлика
Первые два символа альтернативного кода — смайлики. Это, конечно, хорошее начало. Если вы используете операционную систему Microsoft, то напечатать их не составит труда.
Emoticon, Smiley | Описание | Alt Code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
☺ | Белый Смайли. используя его значение альтернативного кода ☺☻
** Вышеупомянутая процедура неприменима для MacOS. ** Вы можете копировать и вставлять смайлики куда угодно. Для получения дополнительной информации о том, как использовать символы, смайлики, пожалуйста, ознакомьтесь с нашим Как использовать Alt-коды? страница. Смайлики, Смайлики с UnicodeСмайлики — это графическое выражение эмоций, а смайлики — самые известные из них. В библиотеке Unicode есть сотни смайликов, и каждый год добавляются новые. Ниже вы можете найти список из более чем 150 смайликов. Вы можете копировать и вставлять их куда угодно, или вы можете использовать их значения Unicode или HTML Code в дизайне вашей веб-страницы или в компьютерном программировании.
|