Регулярное выражение JavaScript: поиск последнего появления шаблона

Чтобы найти последнее вхождение шаблона с помощью регулярных выражений JavaScript (регулярных выражений), вы можете использовать следующие методы:

  1. 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
  1. 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
  1. 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