crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Правильное написание regexp
AD
  опции профиля:
сообщение 27.8.2008, 17:29
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Буду благодарен, если напишите правильный regexp для след. цели: надо найти в строке символы, не являющиеся цифрами и точкой/запятой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 29.8.2008, 12:15
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


1) Про символ '\b' нужно читать не в ассистенте, а в учебнике по С/С++ там же где и про символ '\n'
2) Когда в С/С++ пишешь регулярку нужно помнить об отслешивении слешей. Т.е. если в документации написано, что конструкция \b это граница слова, а ты хочешь найти скажем слово word, то в коде это будет выглядеть так:
QRegExp rx("\\bword\\b")

3) Если ты ещё не понял, конструкция (слеши не отслешены):
[\bC_ON\b\bW_ON\b\bC_OFF\b\bW_OFF\b] эквивалентна [\bC_ONWF] и найдёт 1 из перечисленных символов, но не их последовательность.
4) Пусть у тебя есть строка:
"123.3 - 123 C_ON, W_ON, 1235, -456, C_OFF + W_OFF / Word G_is , OFF bat . War 5 dog_cat 67 ONtologi"
После удаления у тебя получится:
"123.3123C_ON,W_ON,1235,456,C_OFFW_OFF,.567"
Именно это тебе нужно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.8.2008, 12:24
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Tonal @ 29.8.2008, 13:15) *
1) Про символ '\b' нужно читать не в ассистенте, а в учебнике по С/С++ там же где и про символ '\n'
2) Когда в С/С++ пишешь регулярку нужно помнить об отслешивении слешей. Т.е. если в документации написано, что конструкция \b это граница слова, а ты хочешь найти скажем слово word, то в коде это будет выглядеть так:
QRegExp rx("\\bword\\b")

3) Если ты ещё не понял, конструкция (слеши не отслешены):
[\bC_ON\b\bW_ON\b\bC_OFF\b\bW_OFF\b] эквивалентна [\bC_ONWF] и найдёт 1 из перечисленных символов, но не их последовательность.
4) Пусть у тебя есть строка:
"123.3 - 123 C_ON, W_ON, 1235, -456, C_OFF + W_OFF / Word G_is , OFF bat . War 5 dog_cat 67 ONtologi"
После удаления у тебя получится:
"123.3123C_ON,W_ON,1235,456,C_OFFW_OFF,.567"
Именно это тебе нужно?

Нет для приведенной строки получилось совсем не то, что мне надо! Согласен, что у меня корявая конструкция!!! Как сделать правильно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   Правильное написание regexp   27.8.2008, 17:29
- - Tonal   [^\d.,]   27.8.2008, 19:29
- - Litkevich Yuriy   Tonal, выглядит почти так ;)   27.8.2008, 21:41
|- - AD   Хотел немного уточнить - а как сделать так, чтобы ...   28.8.2008, 13:28
|- - AD   // Вот сделал вот такой regexp! QRegExp rx...   28.8.2008, 16:41
|- - Tonal   Цитата(AD @ 28.8.2008, 20:41) QRegExp rx...   29.8.2008, 8:54
|- - AD   ЦитатаУжос! Ты бы прочитал что-нибудь по регэк...   29.8.2008, 10:09
- - Litkevich Yuriy   Цитата(AD @ 28.8.2008, 20:41) символы ...   28.8.2008, 16:46
|- - AD   В регэкспе как раз те словосочетания, которые не у...   28.8.2008, 16:55
- - Litkevich Yuriy   вот и впиши его туда   28.8.2008, 17:02
|- - AD   Цитата(Litkevich Yuriy @ 28.8.2008, 18:02...   28.8.2008, 17:25
- - Litkevich Yuriy   Так давай с начала, надо найти в строке символы, н...   28.8.2008, 17:46
|- - AD   Цитата(Litkevich Yuriy @ 28.8.2008, 18:46...   28.8.2008, 18:02
- - Litkevich Yuriy   смысл помоему не поменялся. Т.е. анализатор ...   28.8.2008, 18:06
|- - AD   Цитата(Litkevich Yuriy @ 28.8.2008, 19:06...   28.8.2008, 18:22
- - Litkevich Yuriy   Цитата(AD @ 29.8.2008, 14:09) символы заб...   29.8.2008, 10:48
- - Tonal   1) Про символ '\b' нужно читать не в ...   29.8.2008, 12:15
|- - AD   Цитата(Tonal @ 29.8.2008, 13:15) 1) Про с...   29.8.2008, 12:24
- - Tonal   Напиши какие строки у тебя на входе, и что тебе ну...   29.8.2008, 12:58
|- - AD   ЦитатаНапиши какие строки у тебя на входе, и что т...   29.8.2008, 13:29
- - Tonal   1) Составляем выражение, которое найдёт последоват...   30.8.2008, 0:08
|- - AD   Цитата(Tonal @ 30.8.2008, 1:08) 1) Состав...   30.8.2008, 13:38
|- - AD   небольшой вопрос. А как сделать с помощью регэкспа...   1.9.2008, 12:38
- - Litkevich Yuriy   AD, всмысле инверсии чтоли? если да, то так [^...]...   1.9.2008, 12:45
- - Tonal   Что такое "последовательность символов, не пр...   1.9.2008, 12:48
|- - AD   Цитата(Tonal @ 1.9.2008, 13:48) Что такое...   1.9.2008, 12:51
- - Tonal   Ты опять криво выразился. Прочитай что-нибудь про ...   1.9.2008, 13:31
|- - AD   Практически сделал, осталось добиться последнего. ...   1.9.2008, 15:57
- - Litkevich Yuriy   Цитата(AD @ 1.9.2008, 19:57) , а все сота...   1.9.2008, 16:34
- - AD   Извините, забыл сразу выложить код, как я реализов...   10.9.2008, 15:30


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 6:12