сорцы чужой библы лезть не планирую.
При этом мне нужны только совпадения.
Какими спецсимволами мне можно избежать ложноположительных срабатываний, чтобы когда я дёргал метод с аргументом "abc" при сравнении библовым методом с элементами листа ["aabcc", "aabc", "abcc", "abc"] у меня после отработки метода в выхлопе был только один элемент, а не три? Можно сделать ручную проверку, но всё равно было бы полезно узнать трюк.
Всем заранее спасибо.
P.S. @zartsoft кроме тебя
Типа, как видоизменить мой аргумент "abc" спецсимволами, чтобы чек "if x in y" работал не как проверка на сабстринг, а как проверка на совпадение
Не очень понятно. in проверка тебе и даст один результат True сколько бы не было совпадений
In [4]: class Foo(str): ...: def __contains__(self, other): ...: return self == other ...: In [5]: name = Foo("Zart") In [6]: "Za" in name Out[6]: False In [7]: "Zart" in name Out[7]: True ?
Да, вот только ты определил класс "Foo", а мне в таком случае нужно переопределять метод из чужого класса, если я правильно понимаю. А ещё если я правильно понимаю при решении в лоб как ты предлагаешь он вообще все используемые в классе contains превратит в eq, что тоже заимеет потенцильно негативные сайдэффекты
Давай исходную задачу
Оттолкнёмся от баша и от частного случая: printf "aabcdd\naabcd\nabcdd\nabc\n" | grep abc Вот так сделает библа и выведет четыре строки printf "aabcdd\naabcd\nabcdd\nabc\n" | grep "^abc$" Вот так можно модифицировать грепающий стринг чтобы вывелась только одна строка и только полное совпадение Есть ли какие-то спецсимволы для стринга? Что-то подобное SOF и EOF
Это опять не исходная задача, а какое-то творчество
Каких данных тебе не хватает? Конкретно
ты контролируешь y в проверке?
1. Что за либа 2. Что ты пытаешься сделать
Обсуждают сегодня