首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Google脚本中使用regex提取字符串前的数字

在Google脚本中使用regex提取字符串前的数字
EN

Stack Overflow用户
提问于 2022-05-04 15:16:57
回答 2查看 476关注 0票数 0

我收到一个Gmail,其中包含类似于下面的文本。我只想在字符串‘符号’之前提取数字。在这种情况下,这个数字将是233,但它和其他内容的电子邮件每天都有所不同。

ZBH Zimmer Biomet Holdings Inc .医疗器械NYSE 25,250 120.68 0.03 0.02 3,124 139 ZBRA Zebra Technologies Corp Cl A通信设备技术NASDAQ 19,620 368.14 -11.43 -3.01 626,763 ZION Bancorp N.A.银行-区域金融服务NASDAQ 8,580 57.47 0.46 0.81 1,507,253 ZTS Zoetis公司药品制造商-纽约证券交易所83,530 175.14 0.47 0.27 2,152,320 233符号(S)

我以前就想过如何提取所有的东西,

(?:(!符号))*

但我不想要所有的东西,只有“233”这个数字。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-04 15:37:04

描述

对于大多数人来说,Regex很难与之共事,包括我自己。让你的生活更轻松。我会把长的文本字符串分割成单词,然后搜索“符号”,然后我就知道这个数字就在前面。

脚本

代码语言:javascript
运行
复制
function test2() {
  try { 
    let text = "ZBH Zimmer Biomet Holdings Inc Medical Devices Healthcare NYSE 25,250 120.68 0.03 0.02 3,124,139 ZBRA Zebra Technologies Corp Cl A Communication Equipment \
    Technology NASDAQ 19,620 368.14 -11.43 -3.01 626,763 ZION Zions Bancorp N.A. Banks - Regional Financial Services NASDAQ 8,580 57.47 0.46 0.81 1,507,253 ZTS Zoetis Inc \
    Drug Manufacturers - Specialty Healthcare NYSE 83,530 175.14 0.47 0.27 2,152,320 233 symbol(s)";
    text = text.split(" ");
    let i = text.indexOf("symbol(s)");
    console.log(text[i-1]);
  }
  catch(err) {
    console.log(err);
  }
}

Console.log

代码语言:javascript
运行
复制
8:31:44 AM  Notice  Execution started
8:31:46 AM  Info    233
8:31:44 AM  Notice  Execution completed

参考

票数 1
EN

Stack Overflow用户

发布于 2022-05-04 16:48:59

我喜欢TheWizEd的方法,但是如果您还想尝试regex,可以使用以下方法:

\d*(?=\ssymbol)

这叫前瞻性断言。它将匹配任何数目的数字前面的空格和“符号”。

如果您确实需要在末尾包含(s),那么可以使用以下一个:

\d*(?=\ssymbol\(s\))

您可以在这里用示例文本测试它,它应该可以工作:https://regexr.com/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72115445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档