Замена, когда слово в другом слове, но с особыми обстоятельствами - PullRequest
1 голос
/ 09 апреля 2019

Моя программа заменяет токены значениями, когда они находятся в файле. При чтении в определенной строке это застревает вот пример: 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 впоследствии. Я не могу искать пробелы до и после, потому что иногда они находятся в середине строк. Любые мысли приветствуются. Спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

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

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

0 голосов
/ 09 апреля 2019

Вы можете использовать регулярное выражение с отрицательным прогнозом , чтобы следующий символ не был "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'
...