Что мне нужно реализовать, это
находить шаблоны в строке, хранить совпадения, заменять совпадения уникальными токенами, чтобы впоследствии токен мог быть заменен найденным ранее совпадением.
Объяснить
для примера у меня есть массив шаблонов
paterns = [/Mr\.\s/,/Mrs\.\s/];
stringSubject = "Mr. john is an expert. mrs. john is no less. mr. watson know this very well";
после извлечения совпадений это может выглядеть (совпадение без учета регистра)
stringSubject = "{1} john is an expert. {2} john is no less. {3} watson know this very well";
и массив токенов может выглядеть как
tokens = ["Mr.","mr.","mrs."]
stringSubject = "{1} john is an expert. {3} john is no less. {2} watson know this very well";
// после обработки stringSubject
токены заменяются так, что
stringSubject = "Mr. john is an expert. mrs. john is no less. mr. watson know this very well";
, чтобы исходная строка извлекалась как есть, даже после выполнения операции без учета регистра для сопоставления шаблонов.
Как это можно сделать с помощью регулярных выражений?