2016-10-18 1 views
0

Ich habe eine dieserregulären Ausdruck dieser String

01 - Il visitatore - Lia and me II 

ich diese Regex schreiben Saiten

(\ d *). - ?. - \

aber nur die Nummer übereinstimmen. als Ergebnis würde ich

Group1: 01 
Group2: Il visitatore misterioso 

Antwort

1

Wenn Sie Zugriff auf einen Programmcode haben, könnten Sie spalten leicht die Zeichenfolge mit „Raum“ - „Bindestrich“ - „Raum“ und die notwendigen Einzelteile erhalten.

Mit einem regulären Ausdruck, können Sie

^(\d+)\s*-\s*([^-]+)\s 

Siehe regex demo

Einzelheiten verwenden:

  • ^ - Beginn der Zeichenfolge
  • (\d+) - Gruppe 1 Einfangen 1 oder mehr Ziffern
  • \s*-\s* - ein Bindestrich umschlossen mit 0+ Leerzeichen
  • ([^-]+) - Gruppe 2 Capturing 1+ Zeichen anders als -, so viele wie möglich (die + Quantifizierer ist gierigen)
  • \s - ein Leerzeichen
0

Hoffe, das hilft!

var string = '01 - Il visitatore misterioso - Mia and me II'; 
 
var regex = /^(\d{2})\s\-\s([\w\s]+)\-[\w\s]+$/; 
 
var matches = regex.exec(string); 
 

 
console.log('Group 1:', matches[1]) 
 
console.log('Group 2:', matches[2])