2017-03-16 7 views
1

Ich versuche, die folgenden Worte zu bekommen (in fett) mit JavaScript/jQuery:Regex Worte übereinstimmen Komma getrennt, multiplelines und zwischen zwei Strings

Blablablalblabla

  • Blablablalblabla: Blablablalblabla
  • betroffen: Windows Vista, Windows 7
  • hxxps: // Blablablalblabla

Blablablalblabla

  • Betroffene: Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows- 8.1, Windows Server 2012 und Windows Server 2012 R2, Microsoft Windows 10, Windows Server 2016
  • hxxps: // Blablablalblabla

Sie sind durch Komma getrennt. Sie erscheinen nach der Zeichenfolge "Betroffene:" und enden mit der Zeichenfolge "- https".

Bisher habe ich mehrere Regex zum Beispiel tryied: /Affected(.*?)\n- https/g

Vielleicht worthly konzentriere ich mich ... eine Idee?

+0

Was ist '/ Betroffene: \ s * \ n- https/g' ([^] *?)? Siehe https://regex101.com/r/GVEqVI/3. Ich nehme an, du hast "http" durch "hxxp" ersetzt, um keine Links in der Post zu erstellen, oder? –

Antwort

0

Ich schlage vor, ein [^] oder [\s\S] Konstrukt verwenden, um ein beliebiges Zeichen zu entsprechen, und : und ein Leerzeichen in das Muster enthalten.

var rx = /Affected:\s*([^]*?)\n- https/g; 
 
var str = "Blablablalblabla \t \t \n\n- Blablablalblabla: Blablablalblabla\n- Affected: **Windows Vista, Windows 7** \n- https://Blablablalblabla\n\n\nBlablablalblabla"; 
 
var m, res=[]; 
 
while ((m = rx.exec(str)) !== null) { 
 
    res.push(m[1].trim()); 
 
} 
 
console.log(res)

+0

Ausgezeichnet, danke! –

Verwandte Themen