首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何优化正则表达式的结果

如何优化正则表达式的结果
EN

Stack Overflow用户
提问于 2019-07-01 22:08:05
回答 1查看 31关注 0票数 0
代码语言:javascript
运行
复制
function getPrecedents(thisFormula){

var exp = /(\w+\!)?\$?[A-Z]{1,}(?:\d+)?(\:?\$?\w+)*(?!\()\b/gm;
var results=[];
var result;


while ((result=exp.exec(thisFormula))!== null){
    results.push(result);   
}
 return results;
}  

从上面的代码中,我得到了以下结果

代码语言:javascript
运行
复制
Trigger_Hires!$AA$15
AD$7
Trigger_Hires!$AC60
Trigger_Hires!$AB60
Rev
Import_Staffing!AD$16
Trigger_Hires!$AC60
Trigger_Hires!$AB60
Customers
Import_Staffing!AD$19
Trigger_Hires!$AC60 

我想消除的结果,只是像Rev和客户修改的regexp或第二个循环的字母

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 22:15:01

我建议在将匹配项添加到results数组之前添加检查:

代码语言:javascript
运行
复制
while (result=exp.exec(thisFormula)) { 
   if (!/^[A-Za-z]+$/.test(result[0])) 
      results.push(result[0]); 
}

注意:您需要访问result[0]来获取整个正则表达式匹配值。为了检查匹配值是否都是字母,使用^[A-Za-z]+$正则表达式:^断言字符串开头的位置,[A-Za-z]+匹配1+字母,$断言字符串结尾的位置。

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

https://stackoverflow.com/questions/56837141

复制
相关文章

相似问题

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