Я пытаюсь взять блок текста и отсканировать его на предмет определенного текста (имени) и превратить его в URL, а именно:
Блок текста:
Chairman Joe Smith has announced a new plan to decrease expenditures by outsourcing the planning of the new dining hall. Smith states the current project managers do not have excess time to commit to this new project and this will be less costly than hiring a new or contract project manager.
Теперь, что я пытаюсь сделать, это взять любые экземпляры председателя Джо Смита, или Джо Смита, или Смита, или председателя Смита, и поместить это в ссылку на его профиль / биографию. Используя любые известные мне строковые методы (замена строк, построитель строк, добавление текста до и после совпадающей строки), я столкнулся бы с проблемой при поиске Смита и других имен.
Если я попробую следующее:
String.replace("Smith", "<a href='smithbio.html'>Smith</a>")
String.replace("Chairman Joe Smith", "<a href='smithbio.html'>Chairman Joe Smith</a>")
Это было бы плохо, потому что везде, где Смит используется как часть его имени, не получалось, и только Смит был бы связующим звеном.
Но если я попробую обратное:
String.replace("Chairman Joe Smith", "<a href='smithbio.html'>Chairman Joe Smith</a>")
String.replace("Smith", "<a href='smithbio.html'>Smith</a>")
Это создаст вложенные ссылки.
Я думаю, может быть, мне следует использовать regex.Replace в сочетании с проверками подстрок? Но если это так, у меня возникают проблемы с тем, как это сделать. Как я могу сделать эти множественные замены, но сказать заменить эту строку, если она не является частью другого string.replacer, который вызывается? К вашему сведению: Делая это в VB, не думаю, что это имеет значение здесь, но на всякий случай ...