2016-07-29 122 views
0

我使用https://github.com/joyent/node-strsplit拆分从文件中提取的文本。我需要在双花括号之间提取数据。以下是文件中的一些示例文本。在Node.js中通过正则表达式拆分数组

我住在{当前业主的{地址||地址}}名称{{名}}和本人身份证(NIC)下,将{{网卡||国民身份号码}})

在这里,我想提取双开启和关闭花括号内的文本。例如,最终阵列应该是这样的,

对于这个[“名”,“NIC ||国民身份号码”“||地址目前业主的地址”],我试图用以下正则表达式模式,

/{{(.*?)}}/ 
/{{([^}]*)}}/ 
/\{{([^}]+)\}}/ 

以下将我的代码。

var pattern = '/{{(.*?)}}/'; 
var arr=strsplit(sample_text, pattern); 

请帮我完成方法。干杯!

更新时间:

var results = [], re = /{{([^}]+)}}/g, text; 

    while(item = re.exec(text)) { 
     results.push(item[1]); 
    } 
+0

为什么不使用'/{{(.*)}}? /g.exec(sample_text)'并在一个循环中获取所有组1的值?见http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular-expression –

回答

1

您可以用match()做到这一点,剥离括号:

var str = "I am living in {{address||address of current property owner}} under the name {{name}} and my id (nic) will be {{nic||National Identity Number}})"; 
 
var result = str.match(/{{.*?}}/g).map(function(x){return x.slice(2,-2)}); 
 
console.log(result)