Вы можете использовать комбинацию положительного lookahead и отрицательного lookahead:
\s+(?=--)(?!--fail)
Таким образом, мы здесь разделяемся с пробелами с положительным lookahead для поискадвойные черты и отрицательный взгляд вперед, чтобы игнорировать --fail
:
>>> re.split(r'\s+(?=--)(?!--fail)', "--conf example1 --conf curl --fail exception --env example2")
['--conf example1', '--conf curl --fail exception', '--env example2']
Обратите внимание, что здесь --fail-foo
также не будет разбиваться.Однако вы можете добавить пробел к отрицательному взгляду:
\s+(?=--)(?!--fail\s)