Замена, когда слово находится в другом слове, но с особыми обстоятельствами

Моя программа заменяет токены значениями, когда они находятся в файле. При чтении в определенной строке он застревает, вот пример: 1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1Token100a

Два токена в примере — это Token100 и Token100a. Мне нужен способ заменить Token100 только его данными, а не заменить Token100a данными Token100 с последующим a. Я не могу искать пробелы до и после, потому что иногда они находятся в середине строк. Любые мысли приветствуются. Спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
25
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать регулярное выражение с негативный взгляд вперед, чтобы убедиться, что следующий символ не является "a":

>>> import re
>>> test = '1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1Token100a'
>>> re.sub(r'Token100(?!a)', 'data', test)
'1.1.1.1.1.1.1.1.1.1 data.1 1.1.1.1.1.1.1Token100a'

Вы можете использовать регулярное выражение:

import re
line = "1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1Token100a"

match = re.sub("Token100a", "data", line)
print(match)

Выходы:

 1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1data

Подробнее о регулярном выражении здесь:

https://www.w3schools.com/python/python_regex.asp

Другие вопросы по теме