Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)   ::   Кондратович Михаил Иосифович

Страница: 159 из 162

Обратите внимание, что пришлось использовать модификатор жадности, так как в «не жадном» режиме мы бы нашли только четыре первых строфы.



Метасимволы — варианты

Вы можете определить перечень вариантов , используя метасимвол «|» для их разделения, например, fee|fie|foe найдет «fee» или «fie» или «foe», (так же как f(e|i|o)e). В качестве первого варианта воспринимается все от предыдущего метасимвола ( или [ или от начала выражения до первого метасимвола «|», в качестве последнего — все от последнего «|» до конца выражения или до ближайшего метасимвола). Обычно, чтобы не запутаться, набор вариантов всегда заключают в скобки, даже если без этого можно было бы обойтись.

Варианты пробуются начиная с первого и попытки завершаются сразу же как удастся подобрать такой, при котором совпадет вся последующая часть выражения. Это означает, что варианты не обязательно обеспечат «жадное» поведение. Например, если применить выражение foo|foot ко входной строке «barefoot», то будет найдено «foo» так это первый вариант который позволил совпасть всему выражению.

Обратите внимание, что метасимвол | воспринимается как обычный символ внутри перечней символов, например, [fee|fie|foe] означает ровно то же самое что и [feio|].

<(p|div)>.*— найдет все корректно закрытые параграфы. Так же найдутся и включения вида

TEXT

, так что это выражение можно применять только на однородном тексте. Как альтернативный вариант можно предположить (
.*
|

.*

)

Заметьте, что применив то же выражение в жадном режиме (?g)<(p|div)>.*мы не н

|< Пред. 157 158 159 160 161 След. >|

Java книги

Контакты: [email protected]