Если я сделаю простой:
str.replace('=', ' = ')
он будет заполнять ВСЕ знаки равенства. Но я хочу оставить ==
, !=
, >=
, <=
, +=
, -=
, /=
, *=
в такт.
* нетронутый. Вы должны изучить docs.python.org/2/library/re.html#module-re.
Это касается стиля кода и соответствия PEP8? если да, то вы могли бы посмотреть на черный github.com/python/черный
Нет, на самом деле я хочу специально пойти против некоторых стандартов PEP8
почему как? Можете ли вы дать немного больше контекста вашей проблеме?
Я провожу эксперименты по разбору кода, и в настоящее время stuff=5
рассматривается как один токен. Я хочу разделить его на stuff = 5
, чтобы он рассматривался как 3 токена.
правильно, но stuff = 5
является соответствует PEP8, так почему вы говорите, что это против PEP8?
На самом деле правила могут быть немного сложнее, рекомендуется использовать пробелы вокруг =
обычно python.org/dev/peps/pep-0008/#другие-рекомендации, но я не думаю, что в случае аргументов ключевого слова
Вот один из способов использования re.sub
:
re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)
Пример:
import re
s = 'a=d==a!=s=as<=s 5-=10 5=+4=!a'
re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)
# 'a = d==a!=s = as<=s 5-=10 5=+4=!a'
Авария:
(?+-/*])(\=)(?![=!<>+-/*])
(?<![=!<>+-\/\*])
=!<>
соответствует одному символу в списке =!<>
(с учетом регистра)+-\/
один символ в диапазоне от +
(индекс 43) до /
(индекс 47) (с учетом регистра)\*
буквально соответствует символу * (с учетом регистра)(\=)
\=
соответствует символу = буквально (с учетом регистра)(?![=!<>+-\/\*])
[=!<>+-\/\*]
=!<>
соответствует одному символу в списке =!<>
(с учетом регистра)+-\/
один символ в диапазоне от + (индекс 43) до / (индекс 47) (с учетом регистра)\*
буквально соответствует символу * (с учетом регистра)Это также сохранит =>
, =<
, =+
, =-
такими же. Разве =
не следует дополнять в этих случаях?
Я думаю, я должен также добавить *=
, /=
, %=
, **=
, //=
в список
Текущее решение также рассматривает эти случаи. @Shamoon обновил пример.
Вы пробовали использовать регулярные выражения?