首页 > 解决方案 > 拆分大字符串 Google 脚本

问题描述

我正在通过谷歌表格脚本使用 SOQL。我正在检索的字段之一是 TextArea 类型,并且包含相当多的混合信息。它返回一个大字符串,如下所示

fullDescription:
"First name: Peter Last name: Pan Email: Peter@pan.com Company name: someCompany How can we help? : Looking to get some app testing done across iPhone and Android devices. Job Title: Cofounder

理想情况下,我只需要该字符串中的以下信息

公司名:

电子邮件:

我尝试过的是一系列 substr 命令,将其逐个分解,但在 100% 的情况下并不准确。

   var cutEmail = splitStr.substr(splitStr.lastIndexOf("."));
   var trimCompany = cutEmail.substr(cutEmail.indexOf(":")+2,cutEmail.lastIndexOf(" "));
   submitCompany= trimCompany.substr(trimCompany.indexOf(""),trimCompany.lastIndexOf("How"));

很可能有更好、更准确的方法来实现这一点,但还没有想到。

有什么想法吗?

标签: javascriptgoogle-apps-script

解决方案


如果您可以依赖始终按预期顺序包含预期标签的字符串,那么您可以使用正则表达式匹配。

function testIt() {
    const splitStr = "First name: Peter Last name: Pan Email: Peter@pan.com Company name: someCompany How can we help? : Looking to get some app testing done across iPhone and Android devices. Job Title: Cofounder";
    const dataRegEx = /First name: (?<firstName>.*)\s+Last name: (?<lastName>.*)\s+Email: (?<email>.*)\s+Company name: (?<company>.*)\s+How can we help\? : (?<request>.*)\s+Job Title: (?<title>.*)/;
    var dataParsed = splitStr.match(dataRegEx);
    if (dataParsed) {
        console.log(dataParsed.groups);
    }
}
10:40:08 AM Info    { firstName: 'Peter',
                      lastName: 'Pan',
                      email: 'Peter@pan.com',
                      company: 'someCompany',
                      request: 'Looking to get some app testing done across iPhone and Android devices.',
                      title: 'Cofounder' }

推荐阅读