2014-09-11 2 views
0

Я кадры в длинном жале, как что:Как извлечь кадр (подстрока) из группы кадров

CCadad6876adDDCCdashajdhakdhadhDDCCsfjskfjsklfjDDCClskfjlsdfjDD 

Кадров сгруппированы между CC и DD. Таким образом, приведенный выше пример представляет три кадра.

CCadad6876adDD 
CCdashajdhakdhadhDD 
CCsfjskfjsklfjDD 
CClskfjlsdfjDD 

Я хотел бы извлечь кадры из этой длинной строки в форму, представленную выше. Для этого я использовал выражение:

CC[a-zA-Z0-9]+DD 

В надежде поймать первый кадр внутри строки.

Однако, вместо ожидаемого CCadad6876adDD вся строка была сопоставлена. Матч правильный, так как CCadad6876adDDCCdashajdhakdhadhDDCCsfjskfjsklfjDDCClskfjlsdfjDD начинается и заканчивается CC и DD, но как настаивать регулярное выражение для фокусировки на первом кадре ?.

Что мне изменить в RegEx, чтобы поймать первый кадр?

+1

для регулярных выражений вопрос, пожалуйста, всегда добавляйте информацию, которая инструмент/программирования язык вы используете. поскольку существуют различные ароматы регулярных выражений. – Kent

+0

вам просто нужно добавить '?' После '+'. Для получения дополнительной информации см. Ссылку, которая отображается по вашему вопросу. –

+1

На каком языке вы используете? Вам нужно установить параметр regex в соответствие с минимальным (найденным первым совпадением) на используемом вами языке. – Pratham

ответ

1

Вы пропустили указать язык программирования, вот пример в PHP:

$string = <<<EOF 
CCadad6876adDD 
CCdashajdhakdhadhDD 
CCsfjskfjsklfjDD 
CClskfjlsdfjDD 
EOF; 

preg_match_all('/CC.*?DD/', $string, $matches); 
var_dump($matches); 

Выход:

array(1) { 
    [0]=> 
    array(4) { 
    [0]=> 
    string(14) "CCadad6876adDD" 
    [1]=> 
    string(19) "CCdashajdhakdhadhDD" 
    [2]=> 
    string(16) "CCsfjskfjsklfjDD" 
    [3]=> 
    string(14) "CClskfjlsdfjDD" 
    } 
} 
Смежные вопросы