crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QString: как заменить в строке любые символы кроме букв и цифр на символ "_", как сформировать идентификатор из произвольной строки
sindbad07
  опции профиля:
сообщение 3.5.2010, 14:27
Сообщение #1


Студент
*

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

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




Репутация:   0  


Доброго времени суток.
Как заменить некий набор символов на символ подчеркивания?
Мне надо из обычной строки сформировать идентификатор, т.е. заменить все недопустимые символы (пробелы, знаки препинания и т.д.) на знак подчеркивания. Вопрос: можно ли это сделать одним оператором типа replace, если да, то как (можно ли в т.ч. обойтись без цикла)?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 3.5.2010, 14:30
Сообщение #2


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

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

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




Репутация:   2  


QString s = "abc$%^def";
s.replace(QRegExp("[^\\w]"), "_");
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sindbad07
  опции профиля:
сообщение 3.5.2010, 20:47
Сообщение #3


Студент
*

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

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




Репутация:   0  


DEADHUNT, спасибо помогло, а как еще можно сделать, чтобы вместо "&!@" -> "____" было "_" ?
Т.е. повторы подчеркиваний сократить до одного символа?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.5.2010, 21:07
Сообщение #4


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

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

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




Репутация:   94  


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

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


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




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