Qt6 中的端口 QRegExp::exactMatch()
Port QRegExp::exactMatch() in Qt6
我正在将 Qt5 应用程序移植到 Qt6。我想尽快离开 Qt6 的 Qt5CoreCompat 模块。我的问题是 QRegExp
class 应该替换为 QRegularExpression
class。大多数补丁都相对微不足道,但我如何在 Qt6 中移植 QRegExp::exactMatch()
。这是应用程序的一些代码:
QRegExp version(QLatin1String("(.+)_v(\d+)"));
if (version.exactMatch(completeBaseName/*QString*/))
{
// some code
}
我在 QRegularExpressionMatch
class 中找不到执行此操作的方法。我想解决方案可能是这样的:
QRegularExpression version(QLatin1String("(.+)_v(\d+)"));
QRegularExpressionMatch match = version.match(completeBaseName);
if (match.hasMatch())
{
// Find exact match or not
}
我想要和以前一样的行为。
文档建议使用 anchoredPattern
helper function 从正则表达式本身进行锚定:
QRegularExpression version(QRegularExression::anchoredPattern(QLatin1String("(.+)_v(\d+)")));
我正在将 Qt5 应用程序移植到 Qt6。我想尽快离开 Qt6 的 Qt5CoreCompat 模块。我的问题是 QRegExp
class 应该替换为 QRegularExpression
class。大多数补丁都相对微不足道,但我如何在 Qt6 中移植 QRegExp::exactMatch()
。这是应用程序的一些代码:
QRegExp version(QLatin1String("(.+)_v(\d+)"));
if (version.exactMatch(completeBaseName/*QString*/))
{
// some code
}
我在 QRegularExpressionMatch
class 中找不到执行此操作的方法。我想解决方案可能是这样的:
QRegularExpression version(QLatin1String("(.+)_v(\d+)"));
QRegularExpressionMatch match = version.match(completeBaseName);
if (match.hasMatch())
{
// Find exact match or not
}
我想要和以前一样的行为。
文档建议使用 anchoredPattern
helper function 从正则表达式本身进行锚定:
QRegularExpression version(QRegularExression::anchoredPattern(QLatin1String("(.+)_v(\d+)")));