regex - 正则表达式在分号后从新行获取数据
问题描述
我不擅长使用正则表达式并且努力制作一个正则表达式,它将从分号后的新行获取数据。例如,看这个例子
Regarding:
267 Covert St Rm 3.5
Contact Information:
(869) 869-5365 <8698695365>
abc@gmail.com
Comments:
I'd like to schedule a viewing for Covert St #3.5, Brooklyn, NY 11207, US.
Please contact me with more information! I am available at
abc@gmail.com
从上面的文本中,我需要获取关于、联系信息和评论下的文本。
我已经制作了这个正则表达式,但它正在获取整个字符串
regExp = new RegExp("(?<=Regarding:)(\n).*");
我正在谷歌应用程序脚本中制作脚本并解析电子邮件中的数据。
谢谢。
解决方案
我不确定在这种情况下是否需要 RegExp。它可以只是拆分:
var s = `Regarding:
267 Covert St Rm 3.5
Contact Information:
(869) 869-5365 <8698695365>
abc@gmail.com
Comments:
I'd like to schedule a viewing for Covert St #3.5, Brooklyn, NY 11207, US.
Please contact me with more information! I am available at
abc@gmail.com`
var regarding = s.split("Regarding:")[1].split("Contact Information:")[0];
console.log(regarding);
var contacts = s.split("Contact Information:")[1].split("Comments:")[0];
console.log(contacts);
var coments = s.split("Comments:")[1];
console.log(coments);
:
如果您在此处之后只需要第一行,请执行以下操作:
var s = `Regarding:
267 Covert St Rm 3.5
Contact Information:
(869) 869-5365 <8698695365>
abc@gmail.com
Comments:
I'd like to schedule a viewing for Covert St #3.5, Brooklyn, NY 11207, US.
Please contact me with more information! I am available at
abc@gmail.com`
var regarding = s.split("Regarding:\n")[1].split('\n')[0];
console.log(regarding);
var contacts = s.split("Contact Information:\n")[1].split('\n')[0];
console.log(contacts);
var coments = s.split("Comments:\n")[1].split('\n')[0];
console.log(coments);
但是您的 regExp 给出了大致相同的结果:
var s = `Regarding:
267 Covert St Rm 3.5
Contact Information:
(869) 869-5365 <8698695365>
abc@gmail.com
Comments:
I'd like to schedule a viewing for Covert St #3.5, Brooklyn, NY 11207, US.
Please contact me with more information! I am available at
abc@gmail.com`
var regExp = new RegExp("(?<=Regarding:)(\n).*");
var r = s.match(regExp)[0];
console.log(r);
var regExp = new RegExp("(?<=Contact Information:)(\n).*");
var c = s.match(regExp)[0];
console.log(c);
var regExp = new RegExp("(?<=Comments:)(\n).*");
var cm = s.match(regExp)[0];
console.log(cm);
那么,你的问题到底是什么?
推荐阅读
- python - sns.countplot() 可以在绘制的条形图上显示数字吗?
- go - 将 3 位 uint 编码/解码为紧凑格式(例如字节片)
- javascript - 关于 JavaScript 中的 for 循环
- firebase - firebase 托管获取 ERR_TOO_MANY_REDIRECTS 以使用动态重定向
- hyperledger-composer - 改进了 Hyperledger Composer 框架的资产类型实体的审计跟踪可用性
- excel - 在 Excel 中,计算给定时间范围内的重叠和非重叠持续时间
- ssl - 引起:java.lang.ClassNotFoundException:org.springframework.xd.dirt.integration.rabbit.RabbitConnectionFactoryBean
- reactjs - 渲染前调用几个依赖函数
- javascript - 正则表达式匹配两个字符之间的字符不包含在Javascript中
- c# - c#最短路径算法选项