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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярные выражения 
:(
    Опции темы
od0201
Дата 22.4.2014, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

      allMessage = File.ReadAllLines(fileName);
...
       Regex regex = new Regex(allMessage[mes_nom - 1]); 

Пытаюсь искать с тексте строку из массива строк, если в строке встречается не парная ")" или "(", ругается.
Понимаю, что б не ругалась нужно использовать "\", если ли другая альтернатива.

Интуиктивно чувствую что нужно применить @, но опыта маловато в C#


Спасибо
PM MAIL   Вверх
diadiavova
Дата 24.4.2014, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(od0201 @  22.4.2014,  23:05 Найти цитируемый пост)
Пытаюсь искать с тексте строку из массива строк, если в строке встречается не парная ")" или "(", ругается.

Скобки в регулярных выражениях являются специальными символами, так что, если ты ищешь скобку в тексте, то экранировать обратным слешем обязательно, независимо от того, парные они или нет, поскольку если ругаться не будет - это еще не значит, что найдет то, что надо.
Цитата(od0201 @  22.4.2014,  23:05 Найти цитируемый пост)
если ли другая альтернатива

Есть, но она тебе вряд ли понравится. Можно указать скобку, как символ юникода.
Цитата(od0201 @  22.4.2014,  23:05 Найти цитируемый пост)
Интуиктивно чувствую что нужно применить @, но опыта маловато в C#

Если ты пишешь регулярку прямо в коде, то это очень желательно сделать в любом случае, иначе просто запутаешься. Но если ты этого не делаешь(подчеркиваю, это плохая идея), то вместо одного слеша пиши два, например в случае со скобкой это будет выглядеть так: "\\(".

Если регулярка достаточно сложная, то лучше напиши ее в отдельном файле, добавь его в ресурсы и бери оттуда. Тут есть несколько преимуществ: не надо втискивать регулярку в ограничения строковых литералов, можно использовать многострочный текст и отступы  и таким образом отформатировть текст для более удобного чтнения (надо использовать флажок IgnorePatternWhiteSpace), ну и можно воспользоваться какой-нибудь внешней программой для редактировния и тестирования регулярок ( типа такого). 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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