Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2015, 11:00   #1
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию Регулярные выражения

Привет всем. Не сильно разбираюсь в регулярках, возникла необходимость сделать такую регулярку: дан текст, и если мы в нем находим символ, который:
а) не буква русского алфавита
б) не буква английского алфавита
в) не один из символов . @ - , _ ! ? % ( ) : ; # $ & ' * + = / [ ] \ ^ { } | "
г) не пробел

то мы его заменяем на пустой символ.

Моя регулярка выглядит так:

Код:
 _inputText.value = Regex.Replace(_inputText.value, @"[^\w\. @\-,!?%():;\#$&'*+/=\[\]\\^{}|]", "", RegexOptions.None);
Не могу понять, как туда запихнуть кавычку ("). И вообще не совсем понимаю, правильно ли она написана, и можно ли это сделать проще. Помогите, плиз, советом. MSDN и статьи по регуляркам читала, но жутко туплю.

З.Ы. Шаблон регулярки взяла из какой-то статьи, и просто добавила туда нужные мне символы...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 14.04.2015 в 11:04.
ACE Valery вне форума Ответить с цитированием
Старый 14.04.2015, 11:04   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

"" для кавычки внутри @"..."

Если без @ тогда \" (но тогда придется все \ самой регулярки экранировать, \\)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.04.2015, 11:08   #3
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
"" для кавычки внутри @"..."
Так у меня вроде @ стоит, но все равно когда внутрь ставлю кавычку, она считает себя закрывающей кавычкой для всего выражения
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 14.04.2015, 11:09   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я имел в виду так:
Код:
@"Я — кавычка ("")!"
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.04.2015, 11:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты действительно убери @ и поставь везде в Си стиле слеши.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 11:17   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Alex11223, вт так что ли: @"[^"]" ?
Stilet, студия ругаеццо

З.Ы. при этом на сайте http://regexr.com/ все норм с просто кавычкой, без всяких слешей
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 14.04.2015, 11:20   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так:
Код:
@"[^""]"
Цитата:
студия ругаеццо
Если со слешем, то тогда все остальные слеши экранировать надо, "\\w...\"..."
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.04.2015, 11:22   #8
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Alex11223, спасибо, с кавычками вроде получилось

З.Ы. Итого получилось так:
Код:
 _inputText.value = Regex.Replace(_inputText.value, @"[^\w\.\s+@\-,!?%():;\#$&'*+/=\[\]\\^{}|""]", "", RegexOptions.None);
Надеюсь, не засмеют
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 14.04.2015 в 11:27.
ACE Valery вне форума Ответить с цитированием
Старый 14.04.2015, 11:27   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
студия ругаеццо
У мну Ксамарин пропускате:
Код:
"[^\\w\\. @\\-,!\"?%():;\\#$&'*+/=\\[\\]\\\\^{}|]"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2015, 11:31   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
а) не буква русского алфавита
б) не буква английского алфавита
А других алфавитов? Китайского, например?
с \w вроде не удалит их.
и \s это не только пробел.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.04.2015 в 11:33.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения Артём555 C# (си шарп) 4 28.04.2013 14:02
Регулярные выражения 7flash Microsoft Office Word 1 25.02.2013 19:51
Регулярные выражения kilogram PHP 4 10.06.2012 00:44
Регулярные выражения C# Дупло Помощь студентам 4 28.09.2011 17:19
Регулярные выражения Vanta11a Помощь студентам 2 05.05.2011 12:44