我使用gmail api获取电子邮件内容,然后在node.js中将其转换为字符串。
Buffer.from(dataToDecode, 'base64').toString('utf8')
然后我使用正则表达式在文本中搜索日期。例如2019年2月27日
/[A-Z][a-z]{2} [0-9]{2}, [0-9]{4}/g
它没有匹配项,但是当我用console.log记录内容时,会显示日期。然后我将日期复制到一些在线解码工具中,结果
\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
都可以给出相同的“ 2019年2月27日”。如何使用正则表达式捕获第一类编码(即较长的编码)?
答案 0 :(得分:-1)
UTF-8:正则表达式说明
\x20
:[\ s]空格
\x2C
:[\,]逗号
\x30-\x39
:[0-9]位数字
\x41-\x5A
:[A-Z]大写字母
\x61-\x7A
:[a-z]小写字母
模式
字符串: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