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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> \w - символ или слово 
V
    Опции темы
Akella
  Дата 11.3.2013, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



здесь написано, что \w - это слово
http://regexpr.ru/cheatsheet/


а здесь, что \w - это символ
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%...%BD%D0%B8%D1%8F

Это какие-то разные стандарты?


PM MAIL   Вверх
Pfailed
Дата 11.3.2013, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



символ


--------------------
PM MAIL   Вверх
DurRandir
Дата 11.3.2013, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



perldoc perlre:


Код

  \w        [3]  Match a "word" character (alphanumeric plus "_", plus
                   other connector punctuation chars plus Unicode
                   marks)

PM   Вверх
Arantir
Дата 11.3.2013, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


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

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



Цитата(Akella @  11.3.2013,  14:51 Найти цитируемый пост)
здесь написано, что \w - это слово
http://regexpr.ru/cheatsheet/
Akella, там написано, цитирую, 
Цитата

Character Classes
...      ...
\w       Word

Что понимать следует как "Word Character". Что дословно можно перевести, как "символ слова" или более приятно на слух "словесный символ", в адаптированной версии "символ, из которого состоят слова". Что есть, просто по русски и по версии вики, — "буквенный символ", исходя из понимания термина "буква".

Как-то так =)


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Akella
  Дата 12.3.2013, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



ясно, а то у меня проблемы с составлением выражения относительно такого текста:
Цитата
Email 110 000 у.е. 2-комн/ 2-к квартира, низ пр. Кирова, новый дом, сдан в эксплуатацию в 2010, 12 этаж 25 этажного панельного дома, панорамные окна с видом на стадион, скоростные лифты, консьерж, ОСМД, выполнен дорогой ремонт по эксклюзивному проекту дизайнеров студии "Belle", общая площадь 68 м.кв., кухня 9 м.кв., спальня 14 м.кв., имеется отдельное меблированое помещение под гардероб, комната для стирки и сушки белья, МПО, итальянский кафель, встроенная кухня с техникой "Samsung", сплит-система "LG", мебель по индивидуальному проекту, мягкая мебель, телевизор "Samsung", холодильник "Samsung", стиральная машина, бойлер. Право собственности. Полностью готова к проживанию. Цена эквивалент 110 000 дол. США. Мебель и техника в стоимости!


Не получается найти три числа, обозначенные красным.
Например, площадь общую.
Вот выражение:
Код
\w+\s\d+\s+м\.кв\.

по идее \w+ должно найти слово "площадь", за которым расположен пробел и далее цифры, далее опять пробел и "м.кв.".
Но выражение ничего не находит.
PM MAIL   Вверх
DurRandir
Дата 12.3.2013, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Скорее всего, проблемы с кодировкой. То, что \w матчит, сильно зависит от локали и utf'ности текста _и_ регулярки. 
PM   Вверх
alezzz
Дата 12.3.2013, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



в качестве альтернативы локали попробуйте заменить \w на [а-я], с cp1251 кажется нормально работает, с utf не очень.
PM MAIL   Вверх
Akella
Дата 12.3.2013, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(alezzz @  12.3.2013,  13:13 Найти цитируемый пост)
аменить \w на [а-я]


пробовал
да, так работает, я просто забыл написать об этом
но хотелось бы именно \w+

Добавлено через 33 секунды
вот тебе и юникод  smile 
PM MAIL   Вверх
alezzz
Дата 12.3.2013, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



Цитата(Akella @  12.3.2013,  13:30 Найти цитируемый пост)
вот тебе и юникод

Для юникода можно использовать use utf8; только-что посмотрел, работает. Но вы, если не ошибаюсь, регулярки не в perl используете?
PM MAIL   Вверх
Akella
Дата 12.3.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Нет, DiRegExp для Delphi, Perl совместимые.
PM MAIL   Вверх
alezzz
Дата 12.3.2013, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



я про другое
Код

use strict;
use utf8;

my $a = 'Email 110 000 у.е. 2-комн/ 2-к квартира, низ пр. Кирова, новый дом, сдан в эксплуатацию в 2010,
12 этаж 25 этажного панельного дома, панорамные окна с видом на стадион, скоростные лифты, консьерж, ОСМД,
выполнен дорогой ремонт по эксклюзивному проекту дизайнеров студии "Belle", общая площадь 68 м.кв., кухня 9 м.кв.,
спальня 14 м.кв., имеется отдельное меблированое помещение под гардероб, комната для стирки и сушки белья,
МПО, итальянский кафель, встроенная кухня с техникой "Samsung", сплит-система "LG", мебель по индивидуальному
проекту, мягкая мебель, телевизор "Samsung", холодильник "Samsung", стиральная машина, бойлер. Право собственности.
Полностью готова к проживанию. Цена эквивалент 110 000 дол. США. Мебель и техника в стоимости!';

while ($a =~ /\w+\s\d+\s+м\.кв\./g){
    print $& . "\n";
}


Код

площадь 68 м.кв.
кухня 9 м.кв.
спальня 14 м.кв.


Это сообщение отредактировал(а) alezzz - 12.3.2013, 14:23
PM MAIL   Вверх
Akella
Дата 12.3.2013, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



да, есть такое
user posted image
PM MAIL   Вверх
DurRandir
Дата 13.3.2013, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(alezzz @ 12.3.2013,  14:13)
в качестве альтернативы локали попробуйте заменить \w на [а-я], с cp1251 кажется нормально работает, с utf не очень.

Не совсем. В 1251 ё выпадает - надо [ёа-я]. Но вроде бы проблема решилась)
PM   Вверх
alezzz
Дата 13.3.2013, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



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


 




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


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

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