2016-09-04 3 views
0

Ich bin neu bei Regex und habe Schwierigkeiten beim Erfassen einiger Daten aus einem Web-Scrape. Die Saiten ich habe, sind in der Form:Regex - Erfassen von Wörtern innerhalb von Grenzen

\n\n\n\nHELLO & EVERYONE\n What's up?

Und ich will alles innerhalb der 4 \n s und die anderen \n erfassen.

heißt HELLO & EVERYONE

Ich habe nicht in der Lage, etwas zu Arbeit zu bekommen, etwas entlang der Linien von / \n{4}(\w+)\n /?

Antwort

1

Verwendung: (?:\\n){4}(.*)\\n

Sie müssen Ihre „\n“ in einer nicht Erfassungsgruppe wickeln sonst wird das System behandeln es als „try and Match n 4 mal“ statt.

Auch \ ist ein Sonderzeichen, so dass Sie \\ angeben müssen würden aber beachten „um Javascript nicht anwendbar“.

Also, was dieser Ausdruck bedeutet, dass, suchen Sie nach \ n \ n \ n \ n und dann alles erfassen von dort bis bis zum nächsten \n

siehe:
https://regex101.com/r/yA9mV3/1

Auch Falls Sie Javascript ausführen, ist hier eine Implementierung;

var data = "\n\n\n\nHELLO & EVERYONE\n What's up" 
 

 
var matches = /(?:\n){4}(.*)\n/.exec(data); 
 

 
console.log(matches[1]);

+0

Perfekt, danke! – ggordon

1

Ich gehe davon aus, dass \n tatsächlich mittlere Zeilenumbrüche tut.

/\n{4}(.+)\n/m 

https://regex101.com/r/rG3sM4/2

Sie verfehlten die m für mehrzeilige entspricht.

Und \w stimmt nicht mit Leerzeichen überein, also verwenden Sie besser ..

Verwandte Themen