Чтобы найти последнее вхождение шаблона с помощью регулярных выражений JavaScript (регулярных выражений), вы можете использовать следующие методы:
String.prototype.matchAll()
: этот метод возвращает итератор всех совпадений шаблона регулярного выражения в строке. Затем вы можете перебрать совпадения и получить последнее вхождение. Вот пример:
const str = 'Hello world, hello universe!';
const regex = /hello/gi;
let lastMatch;
let matches = str.matchAll(regex);
for (const match of matches) {
lastMatch = match;
}
console.log(lastMatch[0]); // Output: hello
String.prototype.match()
с перевернутой строкой: вы можете перевернуть целевую строку, использовать методmatch()
, чтобы найти первое вхождение, а затем перевернуть найденное совпадение. Это фактически дает вам последнее вхождение. Вот пример:
const str = 'Hello world, hello universe!';
const reversedStr = str.split('').reverse().join('');
const regex = /olleh/gi;
const match = reversedStr.match(regex);
const lastMatch = match ? match[0].split('').reverse().join('') : null;
console.log(lastMatch); // Output: hello
String.prototype.search()
с перевернутой строкой. Как и в предыдущем методе, вы можете перевернуть строку и использовать методsearch()
для поиска индекс первого появления. Затем вы можете получить последнее вхождение, изменив найденный индекс. Вот пример:
const str = 'Hello world, hello universe!';
const reversedStr = str.split('').reverse().join('');
const regex = /olleh/gi;
const firstIndex = reversedStr.search(regex);
const lastIndex = str.length - firstIndex - 1;
const lastMatch = str.slice(lastIndex, lastIndex + regex.source.length);
console.log(lastMatch); // Output: hello