2017-05-29 2 views
0

Gegeben einen Satz the description is about fast cars. Und eine Zeichenfolge str = description is, Wie kann ich das Wort "über" bekommen?Extrahieren Sie das erste Wort nach einer gegebenen Zeichenfolge in einer Variablen

Ich habe versucht, einen Blick hinter die Regex zu werfen, aber ich konnte keinen eleganten Weg finden. Irgendwelche Vorschläge andere dann verwenden Sie den IndexOf einige Male zusammen mit Split einen Spleiß? thx

let re = new RegExp('(?<=' + str + ').*'); 
    let result = mySentence.match(re)[0].split(' ')[0]; 

bearbeiten
ich vergaß hinzuzufügen, dass str Match Fall unempfindlich sein sollte.

+0

Diese helfen könnten: https://regex101.com/r/a7MUhE/1 – Rajesh

+0

Sie mag 'strstring (str.indexOf (s) + s.length, str.indexOf (' ', str.indexOf (s) + s.length + 1)). trim() '. – Tushar

Antwort

2

Es gibt keine Notwendigkeit für einen Look-Ahead.

let s = "the description is about fast cars" 
 
let f = "description is"; 
 

 
let r = new RegExp(f + "\\s(\\w+)"); 
 
console.log(s.match(r)[1]);

+0

Diese Lösung schlägt fehl, wenn eine Nummer im Satz vorhanden ist. Wie 's =" die Entfernung ist 3,5 Meter "und" f = 'Abstand ist ", versuchte ich fow Möglichkeiten, die' \ w + 'in' \\ b. *? \ \ B' ohne Erfolg zu ändern. Irgendwelche Vorschläge? Danke –

0

Try this:

var sentence = "the description is about fast cars"; 
var word = "description is"; 

function getFirstAfterSplitSentence(sentence, word) { 
    return sentence.split(word)[1].split(" ")[1]; 
} 

console.log(getFirstAfterSplitSentence(sentence, "is")); 
0

Ein allgemeiner Ansatz wäre:

const orig = 'the description is about fast cars'; 
 
const str = 'description is'; 
 

 
const result = orig.split(str).pop().trim().split(' ').shift(); 
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Verwandte Themen