У меня есть абзац текста и я хочу только Ruby sub
первое совпадение с регулярным выражением слова.Это было бы хорошо, если бы мне нужно было сопоставить только одну строку, но я передаю несколько регулярных выражений в свою подстановку:
regex = Regexp.new(["Lebron James", "Chris Paul"].join("|"))
names_hash = {"Lebron James" => "**Lebron James**", "Chris Paul" => "**Chris Paul**"}
str = "of the best players left in the playoffs, Lebron James is the most experienced player left in the field and probably in all of the league. Chris Paul has played in many playoff games but has never been to a conference final. Lebron James on the other hand, has been to seven straight NBA finals."
Если я запускаю str.gsub(regex, names_hash)
, все экземпляры Lebron James и Chris Paul заменяются
"лучших игроков, оставшихся в плей-офф, Леброн Джеймс - самый опытный игрок, оставшийся на поле и, вероятно, во всей лиге. КрисПол играл во многих играх плей-офф, но никогда не был в финале конференции. Леброн Джеймс , с другой стороны, был в семи финалах NBA подряд. "
И если я запускаю str.sub(regex, names_hash)
(sub вместо gsub), я получаю только первое появление Леброна Джеймса, но не Криса Пола:
"из лучших игроков, оставшихся в плей-офф, Леброн Джеймс - самый опытный игрок, оставшийся на поле и, вероятно, во всей лиге. Крис Пол играл во многих играх плей-офф, но никогда не был в финале конференции. С другой стороны, Леброн Джеймс был всемь подряд NBФинал. "
Мой вопрос:
Как мне настроить то, что у меня есть, чтобы я мог заменить как первый экземпляр Леброна Джеймса и Криса Пола, но не второйупоминание о Леброне Джеймсе?Мой ожидаемый результат:
"из лучших игроков, оставшихся в плей-офф, Lebron James - самый опытный игрок, оставшийся на поле и, вероятно, во всей лиге. Крис Пол играл во многих играх плей-офф, но никогда не был в финале конференции. С другой стороны, Леброн Джеймс был в семи финалах NBA подряд. "