crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Регулярные выражения
larry
  опции профиля:
сообщение 20.6.2015, 8:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 16.12.2010
Пользователь №: 2274

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




Репутация:   0  


Добрый день, форумчане.
Помогите пожалуйста разбить строку регулярным выражением.
Вот строка (координаты точек):
(50.556228,30.823051),(50.556190,30.822988),(50.556163,30.823030),(50.556201,30.
823089)

QStringList list;

list = str.split(QRegExp("\\d+.\\d+"));
    
foreach (QString coord, list)
{
        qDebug() << coord
}


Выражение правильно работает, т.е. удаляет все координаты :rolleyes: и оставляет только скобки и запятые. А как здесь задать, чтобы наоборот все было?
Пробовал в начале ставить ^, но не помагает. Подскажите плиз, как сделать. Нужно получить список координат. Спасибо.

поменял выражение на
QRegExp("[^\\d+.\\d+]")

но при выводе появляются какие-то пустые строки:
Раскрывающийся текст
""
"50.556228"
"30.823051"
""
""
"50.556190"
"30.822988"
""
""
"50.556163"
"30.823030"
""
""
"50.556201"
"30.823089"
""


Можно как-то сделать, чтобы пустых строк не было? Конечно не проблема написать
foreach (QString coord, list)
{
    if(!coord.isEmpty())
        qDebug() << coord;
}


но как-то мне кажется не правильно. Спасибо.

Сообщение отредактировал larry - 20.6.2015, 8:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 21.6.2015, 9:05
Сообщение #2


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

Группа: Модератор
Сообщений: 1594
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

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




Репутация:   12  


у тебя регулярное выражение правильное, а метод неправильный. Split разделяет выражение по указанному разделителю. соответственно, сам разделитель вырезается. я не спец в Qt, но гугл с первого захода выдал некий метод search:
http://stackoverflow.com/questions/1837469...using-qt-regexp
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
larry
  опции профиля:
сообщение 21.6.2015, 9:18
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 55
Регистрация: 16.12.2010
Пользователь №: 2274

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




Репутация:   0  


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

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


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




RSS Текстовая версия Сейчас: 10.4.2020, 0:28