crossplatform.ru

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

AD
  опции профиля:
сообщение 27.8.2008, 17:29
Сообщение #1


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

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

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




Репутация:   17  


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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Tonal, выглядит почти так
;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.8.2008, 13:28
Сообщение #3


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

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

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




Репутация:   17  


Хотел немного уточнить - а как сделать так, чтобы пробелы он тоже пропускал, есть ли значок "или" в регэкспе (нужно для того, чтобы пропускать спец. фразы - например, "C_OFF, C_ON, W_OFF, W_ON")?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.8.2008, 16:41
Сообщение #4


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

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

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




Репутация:   17  


//
Вот сделал вот такой regexp!
QRegExp rx("[^\\d.,\bC_ON\b\bW_ON\b\bC_OFF\b\bW_OFF\b\b_ON\b\b_OFF\b\\s]")

Теперь осталось только додумать, чтобы отдельные символы "_", которые встречаются не в этих словосочетаниях тоже удалялись.
Помогите, пожалуйста, доработать эту штуку!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 29.8.2008, 8:54
Сообщение #5


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

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

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




Репутация:   17  


Цитата(AD @ 28.8.2008, 20:41) *
QRegExp rx("[^\\d.,\bC_ON\b\bW_ON\b\bC_OFF\b\bW_OFF\b\b_ON\b\b_OFF\b\\s]")

Ужос!
Ты бы прочитал что-нибудь по регэкспам, стало бы жить сильно проще.

Краткое описание:
Это описание может содержать неточности, для уточнения смотри ассистента!
Конструкция [что-то здесь] - это всегда 1 символ.
Она может включать явное перечисление символов, указание диапазона символов (например a-z означает любой символ начиная с a и оканчивая z), групповые символы (например \d - эквивалентно 0-9, а \s - любой из пробельных символов, \w - любой из символов слова).
Кроме того, если сразу после открывающей скобки стоил символ ^, конструкция инвертируется, и означает 1 любой символ кроме указанных.
Да, некоторые специальные символы внутри конструкции меняют своё значение. Например . обозначает именно точку а не все символы. \b символ забоя (вроде '\07')...

Теперь сам можешь разобрать что ты написал. :)

Про задачу. Давай ты вообще без регекспов, на человеческом языке напишешь чего тебе нужно?
Например: У меня есть строка содержащая такое (примеры).
Я хочу, сделать с ней что-то (например выбрать все числа, или числа и спец-значения, или убрать ненужные символы...)
И вместе подумаем как это проще и понятнее реализовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.8.2008, 10:09
Сообщение #6


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

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

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




Репутация:   17  


Цитата
Ужос!
Ты бы прочитал что-нибудь по регэкспам, стало бы жить сильно проще.

Краткое описание:
Это описание может содержать неточности, для уточнения смотри ассистента!
Конструкция [что-то здесь] - это всегда 1 символ.
Она может включать явное перечисление символов, указание диапазона символов (например a-z означает любой символ начиная с a и оканчивая z), групповые символы (например \d - эквивалентно 0-9, а \s - любой из пробельных символов, \w - любой из символов слова).
Кроме того, если сразу после открывающей скобки стоил символ ^, конструкция инвертируется, и означает 1 любой символ кроме указанных.
Да, некоторые специальные символы внутри конструкции меняют своё значение. Например . обозначает именно точку а не все символы. \b символ забоя (вроде '\07')...

Теперь сам можешь разобрать что ты написал. :)

Про задачу. Давай ты вообще без регекспов, на человеческом языке напишешь чего тебе нужно?
Например: У меня есть строка содержащая такое (примеры).
Я хочу, сделать с ней что-то (например выбрать все числа, или числа и спец-значения, или убрать ненужные символы...)
И вместе подумаем как это проще и понятнее реализовать.


Мне необходимо удалять из строки все символы, которые не относятся к:
  • цифрам
  • точке
  • запятой
  • специализированным словосочетаниям: как пример, C_OFF, _OFF, _ON

Что значит символы забоя? Если честно, я просто не понимаю некоторых спец. терминов, можно пояснить, пожалуйста? Я по-диагонали читал ассистент. Там про \b написано:
Цитата
\b - A word boundary. For example the regexp \bOK\b means match immediately after a word boundary (e.g. start of string or whitespace) the letter 'O' then the letter 'K' immediately before another word boundary (e.g. end of string or whitespace). But note that the assertion does not actually match any whitespace so if we write (\bOK\b) and we have a match it will only contain 'OK' even if the string is "It's OK now".


Потому, я и решил, что можно использовать эти конструкции. Спасибо за ответ, содержащий разумную критику! :) Буду ждать помощи в правильно решении этой задачи!!! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.6.2025, 9:32