From a2eff5c2448217cb7fb632301620b327461ea4bf Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Wed, 24 Oct 2012 17:46:58 +0200 Subject: Improve / fix QRegularExpression* docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed a couple of typos; also, wrapped the snippets in a main() function, so that now the snippet file can be compiled (and therefore the compiler can help us at detecting those typos). Change-Id: Ie182a9c4cb451db13a6f4bfa5eaed66bc6966c8f Reviewed-by: Topi Reiniƶ Reviewed-by: Casper van Donderen Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../code/src_corelib_tools_qregularexpression.cpp | 124 +++++++++++++++------ 1 file changed, 89 insertions(+), 35 deletions(-) diff --git a/src/corelib/doc/snippets/code/src_corelib_tools_qregularexpression.cpp b/src/corelib/doc/snippets/code/src_corelib_tools_qregularexpression.cpp index 6538c7178d..f1479a8ed7 100644 --- a/src/corelib/doc/snippets/code/src_corelib_tools_qregularexpression.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_tools_qregularexpression.cpp @@ -38,17 +38,28 @@ ** ****************************************************************************/ +#include +#include +#include +#include +#include + +int main() { + +{ //! [0] QRegularExpression re("a pattern"); //! [0] +} - +{ //! [1] QRegularExpression re; re.setPattern("another pattern"); //! [1] +} - +{ //! [2] // matches two digits followed by a space and a word QRegularExpression re("\\d\\d \\w+"); @@ -56,27 +67,31 @@ QRegularExpression re("\\d\\d \\w+"); // matches a backslash QRegularExpression re2("\\\\"); //! [2] +} - +{ //! [3] QRegularExpression re("a third pattern"); QString pattern = re.pattern(); // pattern == "a third pattern" //! [3] +} - +{ //! [4] // matches "Qt rocks", but also "QT rocks", "QT ROCKS", "qT rOcKs", etc. QRegularExpression re("Qt rocks", QRegularExpression::CaseInsensitiveOption); //! [4] +} - +{ //! [5] QRegularExpression re("^\\d+$"); re.setPatternOptions(QRegularExpression::MultilineOption); // re matches any line in the subject string that contains only digits (but at least one) //! [5] +} - +{ //! [6] QRegularExpression re = QRegularExpression("^two.*words$", QRegularExpression::MultilineOption | QRegularExpression::DotMatchesEverythingOption); @@ -84,16 +99,18 @@ QRegularExpression re = QRegularExpression("^two.*words$", QRegularExpression::M QRegularExpression::PatternOptions options = re.patternOptions(); // options == QRegularExpression::MultilineOption | QRegularExpression::DotMatchesEverythingOption //! [6] +} - +{ //! [7] // match two digits followed by a space and a word QRegularExpression re("\\d\\d \\w+"); QRegularExpressionMatch match = re.match("abc123 def"); bool hasMatch = match.hasMatch(); // true //! [7] +} - +{ //! [8] QRegularExpression re("\\d\\d \\w+"); QRegularExpressionMatch match = re.match("abc123 def"); @@ -102,8 +119,9 @@ if (match.hasMatch()) { // ... } //! [8] +} - +{ //! [9] QRegularExpression re("\\d\\d \\w+"); QRegularExpressionMatch match = re.match("12 abc 45 def", 1); @@ -112,31 +130,34 @@ if (match.hasMatch()) { // ... } //! [9] +} - +{ //! [10] QRegularExpression re("^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$"); QRegularExpressionMatch match = re.match("08/12/1985"); if (match.hasMatch()) { - QString day = re.captured(1); // day == "08" - QString month = re.captured(2); // month == "12" - QString year = re.captured(3); // year == "1985" + QString day = match.captured(1); // day == "08" + QString month = match.captured(2); // month == "12" + QString year = match.captured(3); // year == "1985" // ... } //! [10] +} - +{ //! [11] QRegularExpression re("abc(\\d+)def"); QRegularExpressionMatch match = re.match("XYZabc123defXYZ"); if (match.hasMatch()) { - int startOffset = re.capturedStart(1); // startOffset == 6 - int endOffset = re.capturedEnd(1); // endOffset == 9 + int startOffset = match.capturedStart(1); // startOffset == 6 + int endOffset = match.capturedEnd(1); // endOffset == 9 // ... } //! [11] +} - +{ //! [12] QRegularExpression re("^(?\\d\\d)/(?\\d\\d)/(?\\d\\d\\d\\d)$"); QRegularExpressionMatch match = re.match("08/12/1985"); @@ -146,14 +167,14 @@ if (match.hasMatch()) { QString year = match.captured("year"); // year == 1985 } //! [12] +} - +{ //! [13] QRegularExpression re("(\\w+)"); QRegularExpressionMatchIterator i = re.globalMatch("the quick fox"); //! [13] - //! [14] QStringList words; while (i.hasNext()) { @@ -163,72 +184,86 @@ while (i.hasNext()) { } // words contains "the", "quick", "fox" //! [14] +} - +{ //! [15] QString pattern("^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d\\d?, \\d\\d\\d\\d$"); QRegularExpression re(pattern); QString input("Jan 21,"); -QRegularExpressionMatch match = re.match(input, 0, QRegularExpressionMatch::PartialPreferCompleteMatch); +QRegularExpressionMatch match = re.match(input, 0, QRegularExpression::PartialPreferCompleteMatch); bool hasMatch = match.hasMatch(); // false bool hasPartialMatch = match.hasPartialMatch(); // true //! [15] +} - +{ +QString pattern("^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d\\d?, \\d\\d\\d\\d$"); +QRegularExpression re(pattern); //! [16] QString input("Dec 8, 1985"); -QRegularExpressionMatch match = re.match(input, 0, QRegularExpressionMatch::PartialPreferCompleteMatch); +QRegularExpressionMatch match = re.match(input, 0, QRegularExpression::PartialPreferCompleteMatch); bool hasMatch = match.hasMatch(); // true bool hasPartialMatch = match.hasPartialMatch(); // false //! [16] +} - +{ //! [17] QRegularExpression re("abc\\w+X|def"); -QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpressionMatch::PartialPreferCompleteMatch); +QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpression::PartialPreferCompleteMatch); bool hasMatch = match.hasMatch(); // true bool hasPartialMatch = match.hasPartialMatch(); // false QString captured = match.captured(0); // captured == "def" //! [17] +} - +{ //! [18] QRegularExpression re("abc\\w+X|defY"); -QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpressionMatch::PartialPreferCompleteMatch); +QRegularExpressionMatch match = re.match("abcdef", 0, QRegularExpression::PartialPreferCompleteMatch); bool hasMatch = match.hasMatch(); // false bool hasPartialMatch = match.hasPartialMatch(); // true QString captured = match.captured(0); // captured == "abcdef" //! [18] +} - +{ //! [19] QRegularExpression re("abc|ab"); -QRegularExpressionMatch match = re.match("ab", 0, QRegularExpressionMatch::PartialPreferFirstMatch); +QRegularExpressionMatch match = re.match("ab", 0, QRegularExpression::PartialPreferFirstMatch); bool hasMatch = match.hasMatch(); // false bool hasPartialMatch = match.hasPartialMatch(); // true //! [19] +} - +{ //! [20] QRegularExpression re("abc(def)?"); -QRegularExpressionMatch match = re.match("abc", 0, QRegularExpressionMatch::PartialPreferFirstMatch); +QRegularExpressionMatch match = re.match("abc", 0, QRegularExpression::PartialPreferFirstMatch); bool hasMatch = match.hasMatch(); // false bool hasPartialMatch = match.hasPartialMatch(); // true //! [20] +} +{ //! [21] QRegularExpression re("(abc)*"); -QRegularExpressionMatch match = re.match("abc", 0, QRegularExpressionMatch::PartialPreferFirstMatch); +QRegularExpressionMatch match = re.match("abc", 0, QRegularExpression::PartialPreferFirstMatch); bool hasMatch = match.hasMatch(); // false bool hasPartialMatch = match.hasPartialMatch(); // true //! [21] +} +{ //! [22] QRegularExpression invalidRe("(unmatched|parenthesis"); bool isValid = invalidRe.isValid(); // false //! [22] +} +{ //! [23] QRegularExpression invalidRe("(unmatched|parenthesis"); if (!invalidRe.isValid()) { @@ -237,44 +272,62 @@ if (!invalidRe.isValid()) { // ... } //! [23] +} +{ //! [24] QRegularExpression re("^this pattern must match exactly$"); //! [24] +} +{ //! [25] QString p("a .*|pattern"); QRegularExpression re("\\A(?:" + p + ")\\z"); // re matches exactly the pattern string p //! [25] +} +{ //! [26] QString escaped = QRegularExpression::escape("a(x) = f(x) + g(x)"); // escaped == "a\\(x\\)\\ \\=\\ f\\(x\\)\\ \\+\\ g\\(x\\)" //! [26] +} +{ +QString name; +QString nickname; //! [27] QString pattern = "(" + QRegularExpression::escape(name) + "|" + QRegularExpression::escape(nickname) + ")"; QRegularExpression re(pattern); //! [27] +} +{ +QString string; +QRegularExpression re; //! [28] -QRegularExpressionMatch match = re.match(...); +QRegularExpressionMatch match = re.match(string); for (int i = 0; i <= match.lastCapturedIndex(); ++i) { QString captured = match.captured(i); // ... } //! [28] +} +{ //! [29] -QRegularExpression("(\\d\\d) (?\\w+)"); +QRegularExpression re("(\\d\\d) (?\\w+)"); QRegularExpressionMatch match = re.match("23 Jordan"); if (match.hasMatch()) { QString number = match.captured(1); // first == "23" QString name = match.captured("name"); // name == "Jordan" } //! [29] +} +{ //! [30] // extracts the words QRegularExpression re("(\\w+)"); @@ -285,5 +338,6 @@ while (i.hasNext()) { // ... } //! [30] +} - +} -- cgit v1.2.3