Regex для поиска 'some' и замены на 'xyz.some' - PullRequest
2 голосов
/ 01 февраля 2010

Мне нужно написать регулярное выражение в ruby ​​для поиска строки типа 'some', а затем заменить ее на 'xyz.some' Как мне это сделать?

Ответы [ 4 ]

2 голосов
/ 01 февраля 2010

Если 'some' может быть любой произвольной строкой (неизвестной на момент написания скрипта), Используйте \ 1, чтобы использовать соответствующую группу (по позиции) в строке замены.

a = "the quick brown fox jumped over the lazy dog"
str_to_find = "the"

a.gsub(/(#{str_to_find})/, 'xyz.\1')
# => "xyz.the quick brown fox jumped over xyz.the lazy dog"
2 голосов
/ 01 февраля 2010

Не похоже, что вам нужно регулярное выражение - обычный старый gsub подойдет:

s = "foo some"
=> "foo some"
s.gsub("some", "xyz.some")
=> "foo xyz.some"
2 голосов
/ 01 февраля 2010
"some string sth".gsub(/some|sth/, 'xyz.\0')
=> "xyz.some string xyz.sth"

Вы найдете 'some' (или что-то другое), и затем вы можете использовать \0 в строке замены (следите за цитированием, вам нужно использовать \\0 в "..." строке), чтобы поместить все регулярные выражения в соответствие. Или вы можете сгруппировать совпадения в своем регулярном выражении и использовать \1 - \9 в строке замены. Чтобы разместить несоответствующую группу, просто используйте (?: ).

1 голос
/ 01 февраля 2010
str = 'lets make some sandwiches'
xyzstr = str.gsub(/some/, "xyz.some");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...