Отличный ответ и чистый. Спасибо!
я перевариваю последовательность белка с помощью фермента (для вашего любопытства, Asp-N), который расщепляется до белков, кодируемых B или D, в последовательности, состоящей из одной буквы. Мой фактический анализ используетString#scan
для захвата. Я пытаюсь выяснить, почему следующее регулярное выражение не переваривает его правильно ...
(\w*?)(?=[BD])|(.*\b)
где антецедент(.*\b)
существует, чтобы захватить конец последовательности. За:
MTMDKPSQYDKIEAELQDICNDVLELLDSKGDYFRYLSEVASGDN
Это должно дать что-то вроде:[MTM, DKPSQY, DKIEAELQ, DICN, DVLELL, DSKG, ... ]
но вместо этого пропускает каждый D в последовательности.
Я используюhttp://www.rubular.com для устранения неполадок, который работает на 1.8.7, хотя я также проверил этот REGEX на 1.9.2 безрезультатно. Насколько я понимаю, предварительные утверждения нулевой ширины поддерживаются в обеих версиях ruby. Что я делаю не так с моим регулярным выражением?