Russian Qt Forum

Qt => Общие вопросы => Тема начата: kibsoft от Февраль 10, 2010, 15:03



Название: Регулярные выражения - отрицание
Отправлено: kibsoft от Февраль 10, 2010, 15:03
Нужно убирать все знаки препинания(и др.), сделал вот такой regexp:
QRegExp("[.,!?/\\x2D()«»<>;:\'\"]") - \\x2D - это тире
Так вот, когда встречаются слова типа "кто-то", "что-то", тире удаляется и слово объединяется..
Как этого избежать?
P.S. Но бывают строки типа "----", т.е. здесь тире удаляются все и это то что мне нужно..


Название: Re: Регулярные выражения - отрицание
Отправлено: kibsoft от Февраль 10, 2010, 21:44
Вот в ассистенте нашел - \\x2D(?!.) заменяет все тире, если за ним нету текста..
Но как объединить с моим прошлым?
QRegExp("[\\x2D(?!.).,!?/()«»<>;:\'\"]") - вот так работает неправильно..


Название: Re: Регулярные выражения - отрицание
Отправлено: kibsoft от Февраль 10, 2010, 21:52
QRegExp("\\x2D(?!.)|[.,!?/()«»<>;:\'\"]") вот так заработало :)