43 if ( str.contains(
',' ) )
54 const thread_local QRegularExpression partsRx( u
"((?:.*?),(?:.*?),(?:(?:\\d+,)+)?(?:\\d+);)"_s );
55 QRegularExpressionMatchIterator partsIt = partsRx.globalMatch( str +
';' );
57 while ( partsIt.hasNext() )
59 const QRegularExpressionMatch partMatch = partsIt.next();
60 const QString tuple = partMatch.captured( 1 );
65 const thread_local QRegularExpression rx( u
"(.*?),(.*?),((?:\\d+,)+)?(\\d+)"_s );
67 const QRegularExpressionMatch match = rx.match( tuple );
68 if ( !match.hasMatch() )
71 const QString layerId = match.captured( 1 );
72 const QString symbolKey = match.captured( 2 );
73 const QStringList indices = QString( match.captured( 3 ) + match.captured( 4 ) ).split(
',' );
75 QVector<int> indexPath;
76 indexPath.reserve( indices.size() );
77 for (
const QString &index : indices )
79 indexPath.append( index.toInt() );
87 const QStringList elems = str.split(
';' );
88 for (
int i = 0; i < elems.size(); )