stackguru Ответов: 1

Как замаскировать и заменить символы в строке, основываясь на шаблоне?


"тест" содержит строку, которая проверяет наличие определенного "шаблона". Если паттерна не существует, найдите хотя бы символ паттерна и его положение и переформулируйте "тест", состоящий из предоставленного паттерна.

1) в сценарии 1 существует шаблон. Так что никакой замены.
test = "aebfz"
pattern = "ebf"
output = No replacement required


2) в сценарии 2 не существует никакого паттерна, но существует "b". После рефрейминга, из положить должны выглядеть, как показано ниже (положение " б "в тесте 1'. б' модель '1')
test = "abcdz" 
pattern = "ebf"        
output = "ebfdz"


3) в сценарии 3 паттерна не существует. Но и "Б", и "Е" существуют в разных положениях. Таким образом, возможный вывод выглядит следующим образом ("b" - это "0", а "e" - "4" в тесте)
test = "bacde"
pattern = "ebf"
output1 = "ebfcde" (added 'e' before 'b')
output2 = "bacdebf" (added 'bf' after 'e')


4) в сценарии 4 паттерна не существует. Но символ 'b' существует, так что в качестве вывода.
test = "xabdz"   
pattern = "ebf"    
Output = "xebfz"


5) в сценарии 5 паттерна не существует. Вывод может быть переформулирован, как показано ниже
test = "vwxyz"
pattern = "ebf"
Output1 = "ebfyz"
Output2 = "vebfz"
Output3 = "vwebf"


Я думаю замаскировать и заменить механизм. Например: сценарий 2

test = "abcdz" 
pattern = "ebf" 
new_test = "#b#dz" (should look like)
final_test = "ebfdz"


Я не знаю, как это можно сделать. Просто мой подход. Не могли бы вы помочь мне здесь ? Если мой подход не подходит, пожалуйста, дайте мне знать, возможно, лучший вариант.

Что я уже пробовал:

<pre lang="Python">test = "abcdz" 
pattern = "ebf" 
new_test = "#b#dz" (should look like)
final_test = "ebfdz"

1 Ответов

Рейтинг:
1

Richard MacCutchan

Видеть 3. неофициальное введение в Python — документация Python 3.7.9[^] для того, как обращаться к элементам строки. Дальнейшие страницы будут объяснять строковые методы, понимание списков и т. д.