簡體   English   中英

使用正則表達式捕獲utf-8中的日期

[英]Use regular expression to capture dates in utf-8

我使用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日”。 如何使用正則表達式捕獲第一類編碼(即較長的編碼)?

1.檢查unicode表

2.設定條件:

UTF-8:正則表達式說明

\\x20 :[\\ s]空格

\\x2C :[\\,]逗號

\\x30-\\x39 :[0-9]位數字

\\x41-\\x5A :[AZ]大寫字母

\\x61-\\x7A :[az]小寫字母

圖案

字符串: Feb 27, 2019

正則表達式: /[AZ][az][az]\\s\\d\\d\\,\\s\\d{4}/g

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

Regex101演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM