PDA

Показать полную графическую версию : [решено] Как из текста выбрать все выражения вида "{...}"?


evg64
26-12-2009, 20:16
Добрый день! Из длинного текста надо выбрать все выражения вида "{...}". Пишу код:

$sShablonText="{влюбиться по уши|любить} в вампира — {страшно|бояться|очень|сильно} и романтично. Но {потерять голову|смущаться} любимого, решившего ценой разрыва спасти {войти в свою колею|порядок} девушку от роли пешки в вечном противостоянии кланов «ночных охотников», — это {просто|простой} {невыносимо|очень} Белла Свон мучительно переживает {исчезновение|гибель} Эдварда и {ни с чем|безуспешно} ищет забвения в {быть в дружбе|дружить} с мальчишкой-индейцем Джейкобом Блэком. Она {даже если|даже|хотя} не подозревает, что её {превосходнейший|лучший} {Товарищ|сотоварищ|сверстник|друг|коллега|собеседник|собрат|собутыльник|сослуживец|соратник|соотечес твен-ник|единоверец|единоплеменник|соплеменник|соотчич|сородич|земляк|соратник|однокашник|соумышленник|кл еврет|помощник|сподвижник|сотрудник|друг|пара|помощник|участник} — {порождение|дитя|плод} ещё {одного стропильца нет|глупый} {глас народа -- глас божий|молва} Тьмы». {глас народа -- глас божий|молва} {куда|гораздо} {благо|тем более} жестокого и опасного, чем аристократы-вампиры… "

#Include <Array.au3>
$aShablon=StringRegExp($sShablonText,"({(?s).*?})",3)
_ArrayDisplay($aShablon)
У меня работает некорректно: выводит выражения с "{" по "|" , а не по "}". Что в коде неправильно?

Creat0R
26-12-2009, 23:38
Символы «{» и «}» являются служебными, поэтому их нужно “отменять”:

$aShablon = StringRegExp($sShablonText, "(?s)(\{.*?\})", 3)




© OSzone.net 2001-2012