@@ -330,16 +330,19 @@ QString QgsCrashReport::htmlToMarkdown( const QString &html )
330
330
converted.replace ( QLatin1String ( " <b>" ), QLatin1String ( " **" ) );
331
331
converted.replace ( QLatin1String ( " </b>" ), QLatin1String ( " **" ) );
332
332
333
- static QRegExp hrefRegEx ( " <a\\ s+href\\ s*=\\ s*([^<>]*)\\ s*>([^<>]*)</a>" );
333
+ static thread_local QRegularExpression hrefRegEx ( QStringLiteral ( " <a\\ s+href\\ s*=\\ s*([^<>]*)\\ s*>([^<>]*)</a>" ) );
334
+
334
335
int offset = 0 ;
335
- while ( hrefRegEx.indexIn ( converted, offset ) != -1 )
336
+ QRegularExpressionMatch match = hrefRegEx.match ( converted );
337
+ while ( match.hasMatch () )
336
338
{
337
- QString url = hrefRegEx. cap ( 1 ).replace ( QLatin1String ( " \" " ), QString () );
339
+ QString url = match. captured ( 1 ).replace ( QLatin1String ( " \" " ), QString () );
338
340
url.replace ( ' \' ' , QString () );
339
- QString name = hrefRegEx. cap ( 2 );
341
+ QString name = match. captured ( 2 );
340
342
QString anchor = QStringLiteral ( " [%1](%2)" ).arg ( name, url );
341
- converted.replace ( hrefRegEx, anchor );
342
- offset = hrefRegEx.pos ( 1 ) + anchor.length ();
343
+ converted.replace ( match.capturedStart (), match.capturedLength (), anchor );
344
+ offset = match.capturedStart () + anchor.length ();
345
+ match = hrefRegEx.match ( converted, offset );
343
346
}
344
347
345
348
return converted;
0 commit comments