crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Поиск в строке
AD
  опции профиля:
сообщение 16.12.2009, 15:55
Сообщение #1


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

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

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




Репутация:   17  


Есть ли возможность с помощью регулярных выражений сделать следующий трюк? Есть, предположим, такие строки: "7.1C_OFF 9.1 9.3 1_ON 7.3W_OFF" и "7.2C_OFF 6_ON 7.1W_OFF". Ну так чтобы при поиске в этих строках подстроки например "1" первая строка подпадала под это правило, а вторая нет? Есть правило регулярное, которое бы так ограничивало бы? Ну в смысле, что-то в регулярное выражение
QRegExp rx(QString("1"));

добавить так, чтобы при следующем поиске
if(s.indexOf(rx, 0) != -1)        // s- одна из приведенных выше строк
{
      int y = 0;
}

внутрь попадало при подставке в s первой строки и не попадало при подстановки 2-ой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.12.2009, 16:10
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


AD,
не особо понял твои мысли.

ну привяжись к началу строки.
допустим
начало стороки какие-то символы не больше 2 или 3 единичка какой-то текст конец строки.
что то типо этого
"^(.){1,2}1(.)*$"

П.С. не проверял.

Сообщение отредактировал kwisp - 16.12.2009, 16:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 16.12.2009, 16:27
Сообщение #3


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

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

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




Репутация:   17  


kwisp, не то. В смысле есть строка где есть события с целыми номерами и есть с вещественными. так вот смысл в том, что, если в подстроке ищется целое число, то он и находил строки с целыми числами, а если вещественное, то с вещественными.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.12.2009, 16:42
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


AD,
надо было сразу так и написать:)

тебе надо выбрать к примеру все строки, в которых есть целые числа ?
правильно?
QRegExp("(\\s+\|^)(\\d+)(\\s+\|$)")
что нить типа этого выберет тебе строки с целыми числами
QRegExp("(\\s+\|^)(\\d+)\.(\\d+)(\\s+\|^)"); - с вещественными

П.С. не проверял.

Сообщение отредактировал kwisp - 16.12.2009, 16:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.12.2009, 17:17
Сообщение #5


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

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

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




Репутация:   94  


AD, вроде ты уже такую тему поднимал. Продолжал бы там.

П.С. я думал это уже решено у тебя.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 16.12.2009, 18:09
Сообщение #6


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

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

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




Репутация:   17  


Цитата(Litkevich Yuriy @ 16.12.2009, 17:17) *
AD, вроде ты уже такую тему поднимал. Продолжал бы там.

П.С. я думал это уже решено у тебя.

Там решено. А здесь вопрос другой. Ну ладно.... сделал с помощью велосипеда. kwisp, не так. Не любое число, а четко заданное в данный момент. Ладно... С помощью извращения добился нужного результата!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.12.2009, 18:11
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


AD,
если четко заданное то еще проще вместо \\d вставляй своё четкозаданное число и всё.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 23:19