c++ - Qt6 中的端口 QRegExp::exactMatch()
问题描述
我正在将 Qt5 应用程序移植到 Qt6。我想尽快离开 Qt6 的 Qt5CoreCompat 模块。我的问题是QRegExp
应该用类替换的QRegularExpression
类。大多数补丁都相对微不足道,但我如何QRegExp::exactMatch()
在 Qt6 中移植。这是应用程序中的一些代码:
QRegExp version(QLatin1String("(.+)_v(\\d+)"));
if (version.exactMatch(completeBaseName/*QString*/))
{
// some code
}
我看不到在QRegularExpressionMatch
课堂上这样做的方法。我想解决方案可能是这样的:
QRegularExpression version(QLatin1String("(.+)_v(\\d+)"));
QRegularExpressionMatch match = version.match(completeBaseName);
if (match.hasMatch())
{
// Find exact match or not
}
我想要和以前一样的行为。
解决方案
该文档建议使用anchoredPattern
辅助函数从正则表达式本身进行锚定:
QRegularExpression version(QRegularExression::anchoredPattern(QLatin1String("(.+)_v(\\d+)")));
推荐阅读
- python - 如何避免python中动态分配的字符串中的转义字符?
- vba - MS 访问对话框
- c++ - 如何使用 STL 获取结构向量并将其转换为结构元素的向量
- javascript - 以最小值为条件的mongodb查询
- swift - 取消 OperationQueue Swift
- asp.net-core - 如果我在 Controller 中使用 IService 并按 IService->Service->IRepository->Repository 的顺序连接 Iservice,如何添加范围
- python-3.x - 在 for 循环中添加熊猫附加问题
- html - 导航栏左侧的间隙
- javascript - 获取数据后设置状态的问题(React 挂钩)
- regex - 在正则表达式上需要帮助以进行多次替换