removing characters from string to keep digits
-
vers ="VER 3.3a on ABC"
#Then I try to remove all chars except ".0123456789"
vers.remove(QRegularExpression("[-`~!@#$%^&*()_—+=|:;<>«»,?/{}'"\[\]\\]"));
#hoping that I can do vers.toFloat() and get 3.3But vers is untouched.. Qt 5.11.3 / 5.12.6
What is the correct way to extract the version number in this case? -
QString result; for (const QChar c : qAsConst(vers)) { if (c.isDigit() || c == '.') { result.append(c); } }
-
@Andse
Apart from doing it @sierdzio's way --- which is certainly much better than attempting to enumerate a whole bunch of characters to remove in order to be left with only digits --- in answer to your question, your regular expression looks malformed to me, where you try to specify"
and]
characters. (In fact, copying what you have here gives an "unterminated expression", so not sure what exactly you have.) That part would need to be (untested):QRegularExpression("[...\"\\]]")
Because of your
]\]
( <-- damn :( this comes out right in edit mode, but not after posting :( ), where it should be\\]]
, I suspect you have something like the character class enclosed by[...]
followed by something to do with\\
or]
, and that's why it does not match.