RazrFalcon
14.1.2011, 0:36
Нужно удалить все что не буквы aka [a-zA-Z]
Вот только смог str.remove(QRegExp("[^a-zA-Z]"));
а как сделать обратное?
sidsukana
14.1.2011, 0:40
str.remove(QRegExp("[^0-9]")); Не катит?
RazrFalcon
14.1.2011, 1:18
Я так понимаю это удалит цифры?!
А мне нужно всякие ;/"!@#$%^&
Цитата(RazrFalcon @ 14.1.2011, 3:18)
Я так понимаю это удалит цифры?!
А мне нужно всякие ;/"!@#$%^&
Вот так, с ходу, в голову приходит только копирование во временную строку только букв. Лучше написать функцию типа
QString keepOnlyLetters(const &QString inputStr){
...
return tmpStr;
}
RazrFalcon
14.1.2011, 13:47
проблема в том, что это огромный файл (0.5-2мб). Циклом будет 100 лет проверять.
Пробовал как обычно str.remove("/").remove(".")..... ; и для всех не нужных символов так. но виглядит это как то не труЪ.
RustNail
14.1.2011, 14:13
вариант QRegExp("\W") не подойдет?
\w
Matches a word character (QChar::isLetterOrNumber(), QChar::isMark(), or '_').
\W
Matches a non-word character.
RazrFalcon
14.1.2011, 14:50
Странно
str.remove(QRegExp("\w"));
ничего не делает, зато
str.remove(QRegExp("\\w"));
удаляет все буквы и цифры!
Что за?
К слову
str.count(QRegExp("\w"));
в моем случае выводит 1069 =/
str.count(QRegExp("\W"));
в моем случае выводит 0 =/
RazrFalcon,
в С++ символ '\' экранирующий и чтоб его ввести в программу нужно его же заэкранировать.
в первом случае ты сделал регулярное выражение заэкранировав 'w' - что оно обозначет я не знаю.
во втором случае ты заэкранировал '\' и получил регулярное выражение которое как ты и хотел обозначает все буквы и цифры.
RazrFalcon
14.1.2011, 15:13
Ясно....
Так как надо записать, я не понял =/
RustNail
14.1.2011, 15:14
str.count(QRegExp("\\W"));
и чтобы удалить еще и цифры QRegExp("\\d")
RazrFalcon
14.1.2011, 15:21
str.remove(QRegExp("\\W"));
помогло, правда вместе с пробелами удаляет, можно как то исключить пробел из удаления?
RustNail
14.1.2011, 15:41
ну разве что попробовать что-то типа str.remove(QRegExp("\\W^\\s");
RazrFalcon
14.1.2011, 16:27
Вообще не на что не повлияло =(
DEADHUNT
14.1.2011, 17:06
"[^A-Za-z0-9_ ]"
RazrFalcon
14.1.2011, 17:44
Ура! готово.
str.remove(QRegExp("[^A-Za-z0-9_ ']"));
//удаляем все кроме пробелов и апострофов
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.