Вместо replace
вместо match
и извлечение первой захваченной группы.Вы также можете использовать (\S+)
вместо (.*?)\s
:
const regex = /\sversion\s(\S+)/;
const str = `xml version 2.1.2-emerald https://www.example.com`;
const result = str.match(regex);
console.log(result[1]);
Если совпадений может не быть, проверьте, что результат не null
первый:
const regex = /\sversion\s(.*?)\s/;
const str = `foo bar`;
const result = str.match(regex);
if (result) {
console.log(result[1]);
}
Если вы хотите, чтобы полное совпадение было именно тем, что вы ищете, вы можете использовать lookbehind, хотя это будет работать только в новых браузерах и не очень хорошокросс-браузерное решение:
const regex = /(?<=\sversion\s)\S+/;
const str = `xml version 2.1.2-emerald https://www.example.com`;
const result = str.match(regex);
console.log(result[0]);