javascript - 如何使用正则表达式获取两个特定字符串之间的字符串?

标签 javascript html regex angularjs

我有这样一个字符串,

green open calldetails  1 0 4 0 10.7kb 10.7kb 
green open stocksummary 1 0 3 0  8.6kb  8.6kb

我需要从中获取 Stocksummary 和 calldetails。 这是我使用正则表达式尝试过的,

var result = string.match(/(?:open )(.+)(?:1)/)[1];

这是我的全部功能:

routerApp.controller("elasticindex",function($scope,es){
  es.cat.indices("b",function(r,q){
   String St = string.match(/(?:open )(.+)(?:1)/)[1];
  console.log(r,q);
});
});

期望的输出:

calldetails
stocksummary 

最佳答案

这个非贪婪(惰性)正则表达式应该可以代替:

/open +(.+?) +1/

RegEx Demo

var result = string.match(/open +(.+?) +1/)[1];

或安全方法:

var result = (string.match(/open +(.+?) +1/) || ['', ''])[1];

代码:

var re = /open +(.+?) +1/g,
    matches = [],
    input = "green open calldetails 1 0 4 0 10.7kb 10.7kb green open stocksummary 1 0 3 0 8.6kb 8.6kb";
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);

JsFiddle Demo

关于javascript - 如何使用正则表达式获取两个特定字符串之间的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096511/

相关文章:

javascript - offsetParent 不同

html - 如何制作一个只是链接而不是 iFrame 的 Facebook "Like"按钮?

javascript - 是否有事件可以检测我的窗口/选项卡上的焦点和模糊

python - 带有字符串 : pairs of letters that occur twice 的正则表达式

python - 正则表达式将主题标签拆分为单词

javascript - Apollo GraphQL : Augment instead of overriding default resolver behaviour

javascript - Phonegap/Cordova - 媒体 api - 从 URL 播放音频时,UI 卡住几秒钟

javascript - 去除Google map 热图的光晕效果

html - 中断 HREF 以移动到下一行

java - 简单的 Java 正则表达式匹配器不工作