diff options
Diffstat (limited to 'doc/global/snippets/code/doc_src_port_from_qregexp.cpp')
-rw-r--r-- | doc/global/snippets/code/doc_src_port_from_qregexp.cpp | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/doc/global/snippets/code/doc_src_port_from_qregexp.cpp b/doc/global/snippets/code/doc_src_port_from_qregexp.cpp new file mode 100644 index 0000000000..4f953418d9 --- /dev/null +++ b/doc/global/snippets/code/doc_src_port_from_qregexp.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2022 Giuseppe D'Angelo <dangelog@gmail.com>. +** Copyright (C) 2022 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//! [0] +QString p("a .*|pattern"); + +// re matches exactly the pattern string p +QRegularExpression re(QRegularExpression::anchoredPattern(p)); +//! [0] + +//! [1] +QString subject("the quick fox"); + +int offset = 0; +QRegExp re("(\\w+)"); +while ((offset = re.indexIn(subject, offset)) != -1) { + offset += re.matchedLength(); + // ... +} +//! [1] + +//! [2] +QString subject("the quick fox"); + +QRegularExpression re("(\\w+)"); +QRegularExpressionMatchIterator i = re.globalMatch(subject); +while (i.hasNext()) { + QRegularExpressionMatch match = i.next(); + // ... +} +//! [2] + +//! [3] +QRegExp wildcard("*.txt"); +wildcard.setPatternSyntax(QRegExp::Wildcard); +//! [3] + +//! [4] +auto wildcard = QRegularExpression(QRegularExpression::wildcardToRegularExpression("*.txt")); +//! [4] + +//! [5] +const QString fp1("C:/Users/dummy/files/content.txt"); +const QString fp2("/home/dummy/files/content.txt"); + +QRegExp re1("*/files/*"); +re1.setPatternSyntax(QRegExp::Wildcard); +re1.exactMatch(fp1); // returns true +re1.exactMatch(fp2); // returns true + +// but converted with QRegularExpression::wildcardToRegularExpression() + +QRegularExpression re2(QRegularExpression::wildcardToRegularExpression("*/files/*")); +re2.match(fp1).hasMatch(); // returns false +re2.match(fp2).hasMatch(); // returns false +//! [5] + +//! [6] +QRegularExpression re3(QRegularExpression::wildcardToRegularExpression( + "*/files/*", QRegularExpression::UnanchoredWildcardConversion)); +re3.match(fp1).hasMatch(); // returns true +re3.match(fp2).hasMatch(); // returns true +//! [6] |