Я пытался ответить на этот вопрос , где ОП имеет следующую строку:
"path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism"
и хочет разбить ее, чтобы получить следующий список:
['path:bte00250 Alanine, aspartate and glutamate metabolism', 'path:bte00330 Arginine and proline metabolism']
Я попытался решить эту проблему, используя простое утверждение в регулярном выражении, (?=path:)
.Ну, это не сработало:
>>> s = "path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism"
>>> r = re.compile('(?=path:)')
>>> r.split(s)
['path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism']
Однако, в этом ответе , ответчик получил его, поставив предварительное предположение с пробелом:
>>> line = 'path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism'
>>> re.split(' (?=path:)', line)
['path:bte00250 Alanine, aspartate and glutamate metabolism', 'path:bte00330 Arginine and proline metabolism']
Почему регулярное выражение работает с пробелами?Почему это не работает без пробелов?