Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения чтение из файла 
V
    Опции темы
bigbuka
Дата 10.6.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть файлик со списком регулярных выражений
каждое в отдельной строке
делаю System.IO.File.ReadAllLines()
вызываю конструктор RegEx  бросает exeception "Неправильный формат esc-последовательности \p{x}"
После берем любую строчку из этого же файла вставляем в конструктор и все никакого exeception нету в чем магия?
на всякий случай вот пример выражения
Код

(?<=\PL)?[пp]_?[иieеё]_?[зz3]_?[дd](?=_?[[аеиоуыэюяёaeioyu])

P.S. с кодировкой файла все ок


Это сообщение отредактировал(а) bigbuka - 10.6.2011, 20:39
PM MAIL   Вверх
diadiavova
Дата 10.6.2011, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


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

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



Цитата(bigbuka @  10.6.2011,  21:36 Найти цитируемый пост)
в чем магия?

Скорей всего в обратном слеше. Если ты в коде строку передаешь именно так, как показано в твоем примере, то есть
Код

string rePattern = "(?<=\PL)?[пp]_?[иieеё]_?[зz3]_?[дd](?=_?[[аеиоуыэюяёaeioyu])";

Тофактически у тебя создается строка без обратного слеша, поскольку он воспринимается как спецсимвол. В то же время, читая эту строку из файла ты передаешь ее как есть. А последовательность \P в регулярном выражении имеет собственное значение и за ней должно следовать выражение в фигурных скобках
http://msdn.microsoft.com/ru-ru/library/az...aracter_escapes
Если в коде шарпа текстовый литерал будет представлен так
Код

string rePattern = @"(?<=\PL)?[пp]_?[иieеё]_?[зz3]_?[дd](?=_?[[аеиоуыэюяёaeioyu])";

То по идее должна выскочить та же ошибка. Если ты ищешь эту последовательность символов(\P), то в самой регулярке обратный слеш надо удвоить.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
bigbuka
Дата 10.6.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



одна голова хорошо а 2 лучше ) 
Спасибо огромное!))

Это сообщение отредактировал(а) bigbuka - 10.6.2011, 21:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




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


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

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