parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

...и встречный вопрос...

Ramesses II 12.11.2002 22:05 / 12.11.2002 22:07

чей-то я не разобрался с ограничителем символов {min,max}... можно пример?
А то я его куда только ни вставлял, чуть ли не в... :)

И еще: я тут код составил, но кое-где оно действительно так —
слишком много NBSP-шек получается, можно мнение —
чем лучше пренебречь? И как его сделать покомпактнее,
а то слишком длинный выходит, а через .replace — не получается
(или руки не оттуда...)

Но код еще сырой -- его еще надо разбить с учетом языка RU/EN...

Код:
@text_ref[text]

# вот здесь, по идее, должен несколько пробелов в один сливать, но в Perl
# /ab*c/ -- звездочка показывает, N-ное число символов, а в Парсере -- вроде нет...
$text[^text.match[ *][g]{ }]
$text[^text.match[\s\n][g]{
}]
$text[^text.match[&][g]{&amp^;}]
$text[^text.match[ ][g]{&nbsp^;}]
$text[^text.match[][g]{&nbsp^;&#151^;}]
$text[^text.match[--][g]{&#151^;}]
$text[^text.match[ ][g]{&nbsp^;}]
$text[^text.match[((\s|\A|^;|<.>)(«|"))][g]{${match.2}&#0171^;}]
$text[^text.match[»|"][g]{&#0187^;}]
$text[^text.match[\“][g]{&#0147^;}]
$text[^text.match[\”][g]{&#0148^;}]
$text[^text.match[ '][g]{ &#145^;}]
$text[^text.match['][g]{&#146^;}]
$text[^text.match[(\s|\A|^;)([ёа-яa-z0-9]+(-[ёа-яa-z0-9-]+))][g]{${match.1}<NOBR>${match.2}</NOBR>}]
$text[^text.match[((\s|\A|^;)[Тт|Ии|Жж]\.) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Оо](|б|т)) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Вв]()) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Тт]ов\.) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[([А-Я]\.) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[MD]([rs]\.|[rs]|rs|rs\.)) ][gi]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[A-ZА-Я]+[a-zа-я]\.) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Сс]()) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Дд](о|ля)) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Ии](|з|ли)) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Пп](ро|о|од|еред|ред|ри)) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Нн](и|е|а|ад)) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Зз]а) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Кк]()) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Уу]) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[((\s|\A|^;)[Аа]) ][g]{${match.1}&nbsp^;${match.postmatch}}]
$text[^text.match[ ([г]\.)(|[ .,:^;.?!"”»…\/])][g]{&nbsp^;${match.1}}]
$text[^text.match[ ([Яя](нвар)(ь|я)|[Фф](еврал)(ь|я)|[Мм](арт)()|[Аа](прел)(ь|я)|[Мм]ая|([Ии](ю)(ня|ля))|[Аа](вгуст)()|[Сс](ентябр)(ь|я)|[Оо](ктябр)(ь|я)|[Нн](оябр)(ь|я)|[Дд](екабр)(ь|я))][g]{&nbsp^;${match.1}}]
$text[^text.match[((\s|\A|^;)[г]\.) ][g]{${match.1}&nbsp^;}]
$text[^text.match[ ([Бб]()( |[ .,:^;.?!"”»…\/]))][g]{&nbsp^;${match.1}}]
$text[^text.match[\A][g]{<P>}]
$text[^text.match[(\n)][g]{</P>
${match.1}<P>}]
$text[^text.match[(.+)\Z][g]{${match.1}</P>}]
$tttexttt[$text]