Используйте регулярное выражение для захвата дат в utf-8 - PullRequest
0 голосов
/ 27 февраля 2019

Я использовал gmail api для получения содержимого электронной почты, а затем в node.js я преобразовал его в строку.

Buffer.from(dataToDecode, 'base64').toString('utf8')

Затем я использую регулярное выражение для поиска дат в тексте.например, 27 февраля 2019 года

/[A-Z][a-z]{2} [0-9]{2}, [0-9]{4}/g

Это не дает соответствия, но когда я утешаю содержание, дата присутствует.А затем я копирую дату в некоторые онлайн-инструменты для декодирования. Оказывается, что

\xe2\x80\x8c\x46\xe2\x80\x8c\x65\xe2\x80\x8c\x62\xe2\x80\x8c\x20\xe2\x80\x8c\x32\xe2\x80\x8c\x37\xe2\x80\x8c\x2c\xe2\x80\x8c\x20\xe2\x80\x8c\x32\xe2\x80\x8c\x30\xe2\x80\x8c\x31\xe2\x80\x8c\x39\xe2\x80\x8c\x0a

и

\x46\x65\x62\x20\x32\x37\x2c\x20\x32\x30\x31\x39

могут давать одно и то же «27 февраля 2019 года».Как использовать регулярное выражение для захвата кодировки первого типа (т. Е. Более длинной кодировки)?

1 Ответ

0 голосов
/ 27 февраля 2019

1.Проверьте таблицу Юникод .

2.Установите условие:

UTF-8: Regex Description

\x20: [\ s] пробел

\x2C: [\,]запятая

\x30-\x39: [0-9] цифры

\x41-\x5A: [AZ] прописные буквы

\x61-\x7A: [az] строчные буквы

Pattern

Строка: Feb 27, 2019

Регулярное выражение: /[A-Z][a-z][a-z]\s\d\d\,\s\d{4}/g

UTF-8: /[\x41-\x5A][\x61-\x7A]{2}\x20[\x30-\x39]+\x2C\x20[\x30-\x39]{4}/g

Regex101 demo

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