Отличный ответ и чистый. Спасибо!

я перевариваю последовательность белка с помощью фермента (для вашего любопытства, 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. Что я делаю не так с моим регулярным выражением?

Ответы на вопрос(2)

Ваш ответ на вопрос