Regular Expressions

2 отговора 260 прегледа
#1

Regular Expressions

Здравейте. Трябва ми регулярен израз, който матчва следното:

<lf>%<lf>
(text to be matched)
<lf>%<lf>

Тябва да се върне текста между делимитерите. Не е толкова просто, колкото
изглежда на пръв поглед, защото е възможно да има % вътре в самия текст, но
те не се броят за делимитери освен ако не са заобиколени от нови редове.

За текста между делимитерите е лесно - групира се и готово. Обаче ми е
трудно да си построя патерна...

\n%\n(?<група>и тук трябва експрешън да матчва всичко без "<lf>%<lf>")\n%\n
[^%] не върши работа!

Мерси на тези, които откликнат :)

Отговор
в отговор на zaggy #2

Re: Regular Expressions

Колко пъти можеш да имаш това

<lf>%<lf>
(text to be matched)
<lf>%<lf>

в текста, в който търсиш? Мисълта ми е само на едно място ли го има или искаш да върнеш всички подобни pattern-и в текста. Ако го има само веднъж е това трябва да свърши работа - \n%\n(.*)\n%\n

Поне в asdasdasd\n%\nas%%%dasd\n%\nasdasdasd връща as%%%dasd, нищо че има % вътре.



Eeeeeeeeeeeeeeeaaaaaaasy rider
Отговор
в отговор на Lupi #3

Re: Regular Expressions

Merci za otgovora. Ne, ne e samo vednuj. Eto primeren tekst:

line 1
%
%line 2% bla
%
line 3%
%
alabala

Testvai s tozi tekst... Ideiata e da se matchnat redowete bez delimiterite. :)
Uspeh!

Отговор