QRegExp replace every second character with a whitespace (blank)?
Solved
General and Desktop
-
Hi there,
i want to insert a whitespace (blank) after every second character in a QString.
Years ago in Java i did it this way: String.replaceAll("(.{2})(?!$)", "$1 ")Now i tried to transfer it to Qt and tried it thsi way:
QString myString = some Data. myString.replace(QRegExp("(.{2})(?!$)"), "$1 ");
But it did not replace it correctly. For example the input is something like this: 34C9FG63R2DE9H88Z and the output should be 34 C9 FG 63 R2 DE 9H 88 Z
but with my soluton above i got: $1 $1 $1 $1 $1 $1 $1 $1 Z".So where is the problem? I think Qt handles the replace in another way like Java.
thanks! -
If you are using Qt5 then use QRegularExpression instead of QRegExp
instead of
$1
you should use\1
(escaped so\\1
)otherwise, more straightforward, you can use:
const int everyOther = 2; for(int i=everyOther;i<testStr.size();i+=everyOther+1) testStr.insert(i,' ');