2016-04-15 3 views
0

Вот мое регулярное выражение: (<ImageContainer)([\s\S]+)([\s\S]+)(<\/ImageContainer>)Как ограничить регулярное выражение от захвата более чем одно выражение

Вот некоторый текст, я захватывая:

<ImageContainer>some stuff here...<\ImageContainer>more stuff here..<ImageContainer>and even more stuff</ImageContainer>... 

Моя регулярное выражение захватывает весь текст, и я только хочу он должен захватить от <ImageContainer> до </ImageContainer>. Что мне не хватает?

+0

Вы хотите получить эти * некоторые вещи здесь ... s *? – Shafizadeh

+0

его текст. Я взял его, потому что это была конкретная информация для клиента. – user1015214

ответ

2

легко, use a lazy quantifier:

<ImageContainer>(.*?)<\/ImageContainer> 

последовательность .*? будет есть только один символ за один раз, а затем попытаться дать оставшуюся часть матча картины. Контрастируйте это с регулярным жадным .*, который мгновенно начнет гонку до конца строки, а затем отступит, чтобы попробовать и оставить остальную часть шаблона.

+0

Спасибо за объяснение! – user1015214

Смежные вопросы