regex - 如何将 GMAIL 正文中的特定字段解析为 google SHEETS
问题描述
我有一个以此开头的 gmail 正文:
Name: Full Report
Store: River North (Wells St)
Date Tripped: 18 Feb 2020 8:40 PM
Business Date: 18 Feb 2020 (Closed)
Message:
Information:
This alert was tripped based on a user defined trigger: Every 5 minutes.
我正在尝试解析 Date Tripped: 字段和 Business Date: 字段,但不相信我得到了正确的正则表达式。
// Implement Parsing rules using regular expressions
if (content) {
tmp = content.match(/Date Tripped: \s*([A-Za-z0-9.\s ]+)(\r?\n)/);
var tripped = (tmp && tmp[1]) ? tmp[1].trim() : 'N/A';
tmp = content.match(/Business Date: \[0-9][()]/);
var businessdate = (tmp && tmp[1]) ? tmp[1].trim() : 'N/A';
解决方案
对于“跳闸日期”,需要进行细微更改:
Date Tripped:\s*([:A-Za-z0-9\s]+)\r?\n
你的主要错误:你忘了把:
类括号放在里面。提示:摆脱(
and )
around \r?\n
。你不想抓住那些。
你可以让它更短一点:
Date Tripped:\s*([:\w\s]+)\r?\n
对于营业日期,此人将执行以下操作:
Business Date:\s([\w\s]+\([a-zA-Z]+\))
甚至更短:
Business Date:\s([\w\s]+\(\w+\))
您的(主要)错误:您逃脱\[
,这在这里不正确。下一个:[()]
匹配(
and )
,但不匹配(Closed)
。见正则表达式101
推荐阅读
- sql - Postgresql COALESCE with String Literals does not work as expected
- sql - 将列转换为行值的表转置
- node.js - Angular Universal - 服务器和客户端中的不同 URL 类
- android - 如何使用嵌套的 Json 数组响应解析 Json 对象
- regex - 正则表达式模式不匹配
- java - IndexOutOfBoundsException error while trying to print first 4 elements of an ArrayList
- bash - 即使 `bashrc` 中存在路径,也无法运行路径中的任何文件
- node.js - 尝试在 docker 容器中运行 composer-rest-server 时出现节点 EACCESS 错误
- python - Python Gurobi:无法向模型添加约束
- go - 在 Golang 中比较两张地图