Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция с регуляр. выраж. Поведение фунции из файла 
V
    Опции темы
les
Дата 10.5.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

Репутация: нет
Всего: нет



Доброго времени суток.
Такой вопрос, есть функция которая ищет слова начинающиеся с большой бувы иди написаные заглавными при помощи рег. выражения:
Код

$text=~ s/\W([А-Я|A-Z]\w+)/ /

Эта фукция работает корректно в скрипте.... но если ее как отдельную функцию вынести в отдельный файл, а в основном скрипте подцепить с помощье require, то русские словечки она уже не подхватывает, в отличии от латинских. 
Русская локаль в основном скрипте настроена, "дебагером" тоже ничего не заметил, и там и там на вход переменная передается коректно.

Если не в курсе как это подправить, мэй би существует другой способ выдерать слова с буквами верхнего регистпра?
PM MAIL   Вверх
sir_nuf_nuf
Дата 10.5.2008, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 1
Всего: 31



настройте точно также рускую локаль и в новом файле, там куда поместили функцию.

Лексический анализатор не распространяет действие локали на фалйы загружаемы по use и т.п.


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
les
Дата 10.5.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 24.4.2006

Репутация: нет
Всего: нет



ага, надо будет попробывать...
А по поводу слов с "большой буквы" не в начале предложения/ строки... 
Код

$text=~ s/(?<!\.\s)([А-Я|A-Z]\w+)/ /

Работает... но не универсален. Как сюда поставиться условия на несколько пробелов после точки  (перед словом), и знак начала стори?
Вот эти примеры не работает
Код

$text=~ s/(?<!\.\s*)([А-Я|A-Z]\w+)/ /
$text=~ s/[^(?:\\.\s*)]([А-Я|A-Z]\w+)/ /


Добавлено @ 15:23
2 sir_nuf_nuf
Спасибо, ваш совет помог!

а по второму вопросу решил так - 
Код

s/[^\\.][^\\s*]([А-Я|A-Z]\w+)/ /


Это сообщение отредактировал(а) les - 10.5.2008, 15:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.