Возможно, я не правильно понял проблему, но я бы создал очень уникальный escape-маркер, к которому вряд ли можно прикоснуться, а затем использовал бы его, чтобы заключить сущность, закодированную в виде строки base32.
В конце концов, вы можете передавать уникальные маркеры и их номера по цепочке через отдельный канал и проверять их наличие и номер в конце.
Пример, что-то вроде
the value of the temperature was 18 cd48d8c50d7f40aeb6a164181b17feee EZSGKZY= cd48d8c50d7f40aeb6a164181b17feee
ваш маркер - uuid, а сущность кодируется в base32. Затем вы проходите по маркеру cd48d8c50d7f40aeb6a164181b17feee. Он не может быть поврежден (если он поврежден, ваши фильтры, вероятно, все равно повредят все, что состоит из букв и цифр, но, по крайней мере, вы можете исключить их, потому что они имеют фиксированную длину), и вы всегда можете восстановить содержимое, заглянув внутрь двух маркеров.
Конечно, если в ваших документах есть uuids, это может представлять проблему, но, поскольку вы не передаете их в качестве авторизованных маркеров по боковому каналу, они не будут распознаваться как таковые (и в любом случае, что В любом случае, inbetween не будет проверяться как строка base32).
Если вам нужно их найти, вы можете оставить подразделение uuid, а затем использовать правильное регулярное выражение, чтобы определить эти случаи. Пример:
>>> re.search("(\w{8}-\w{4}-\w{4}-\w{4}-\w{12})(.*?)(\\1)", s)
<_sre.SRE_Match object at 0x1003d31f8>
>>> _.groups()
('6d378205-1265-44e4-80b8-a47d1ceaad51', ' EZSGKZY= ', '6d378205-1265-44e4-80b8-a47d1ceaad51')
>>>
Если вам действительно нужен определенный «токен» для тестирования, вы можете использовать uuid1 с очень определенной спецификацией узла:
>>> uuid.uuid1(node=0x1234567890)
UUID('bdcce554-e95d-11de-bd0f-001234567890')
>>> uuid.uuid1(node=0x1234567890)
UUID('c4c57a91-e95d-11de-90ca-001234567890')
>>>
Вы можете использовать в качестве узла все, что предпочитаете, uuid будет уникальным, но вы все равно можете проверить наличие (хотя вы можете получить ложные срабатывания).