我收到一个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”这个数字。
谢谢
发布于 2022-05-04 15:37:04
描述
对于大多数人来说,Regex很难与之共事,包括我自己。让你的生活更轻松。我会把长的文本字符串分割成单词,然后搜索“符号”,然后我就知道这个数字就在前面。
脚本
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
8:31:44 AM Notice Execution started
8:31:46 AM Info 233
8:31:44 AM Notice Execution completed参考
发布于 2022-05-04 16:48:59
我喜欢TheWizEd的方法,但是如果您还想尝试regex,可以使用以下方法:
\d*(?=\ssymbol)
这叫前瞻性断言。它将匹配任何数目的数字前面的空格和“符号”。
如果您确实需要在末尾包含(s),那么可以使用以下一个:
\d*(?=\ssymbol\(s\))
您可以在这里用示例文本测试它,它应该可以工作:https://regexr.com/
https://stackoverflow.com/questions/72115445
复制相似问题