2016-07-29 3 views
0

Ich verwende https://github.com/joyent/node-strsplit, um den Text aus einer Datei extrahiert. Ich muss die Daten zwischen doppelten geschweiften Klammern extrahieren. Im Folgenden finden Sie einen Beispieltext in der Datei.Split-Array durch regulären Ausdruck in Node.js

Ich lebe in {{Adresse || Adresse des aktuellen Eigentümers}} unter dem Namen {{name}} und meine id (nic) wird {{nic || Nationale Identitätsnummer}})

Hier möchte ich den Text in doppelte öffnende und schließende geschweifte Klammern extrahieren. Zum Beispiel sollte die ultimative Array sein wie, [ ‚Adresse || Adresse des aktuellen Eigentümers‘, ‚Name‘, ‚nic || Nationale Identitätsnummer‘]

Dazu habe ich versucht, die folgenden verwenden Regex Muster,

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

Folgen wird mein Code.

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

Bitte helfen Sie mir für den Abschluss des Ansatzes. Prost !!

Aktualisiert:

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

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

Warum nicht 'verwenden /{{(.*)}}? /g.exec (sample_text) 'und alle Werte der Gruppe 1 in einer Schleife erhalten? Siehe http://stackoverflow.com/questions/432493/how-do-you-access-the-matched-groups-in-a-javascript-regular-expression –

Antwort

1

Sie es mit match() und entfernen die Klammern tun könnte:

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)