Я хочу совместить пары символов в строке. Предположим, что строка: «zttabcgqztwdegqf». Оба «zt» и «gq» соответствуют парам символов в строке.Ruby ищет строку для совпадения пар символов
Следующий код находит «ZT» соответствие пару, но не «GQ» пара:
#!/usr/bin/env ruby
string = "zttabcgqztwdegqf"
puts string.scan(/.{1,2}/).detect{ |c| string.count(c) > 1 }
код обеспечивает совпадающие пары, где индексы пары 0 & 1,2 & 3, 4 & 5 ... но не 1 & 2,3 & 4,5 & 6, и т.д.:
zt
ta
bc
gq
zt
wd
eg
qf
Я не уверен, что регулярное выражение в Ruby, это лучший способ пойти. Но я хочу использовать Ruby для решения.
Я не уверен, что понял вопрос, который я только что ответил. :-). Название относится к «паре совпадающих символов». Не могли бы вы определить, что (с редактированием)? Кроме того, ваш желаемый результат просто представляет собой массив '[" zt "," ta "," bc "," gq "," zt "," wd "," eg "," qf "]' (который представляет собой каждую пару смежные строки соединены)? –
Предположим, что строка была «ttabcttttdefttbcbcbc». Каким будет ваш желаемый результат? –
@CarySwoveland: если я правильно понимаю, он хочет найти каждую пару символов (также перекрывающиеся), которые повторяются внутри строки, его проблема связана с двигателем регулярного выражения, потребляющим символы два раза в раз, поэтому нечетные пары не извлекаются , –