summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2020-12-27 15:27:42 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-12-28 14:35:39 +0000
commit824c726340ed8da0393aa97016682bcfd8c8bdc3 (patch)
tree7ccf4a67caaef5b1fb02bded0f14bfe7758bff33 /src/corelib
parent24cf218b3985941887a7f0dcfc249e3367768700 (diff)
QRegularExpression: mention raw string literal in the docs
Raw string literals (since C++11 according to [1]), make writing/reading regex patterns easier, since one can just use e.g. "\w\d" without having to escape those backslashes e.g. "\\w\\d"; this is especially useful with longer/more complex regex patterns. [1] https://en.cppreference.com/w/cpp/language/string_literal Pick-to: 5.15 6.0 Change-Id: I119f9566d27222b915af931ee7e13e064baede61 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_text_qregularexpression.cpp10
-rw-r--r--src/corelib/text/qregularexpression.cpp8
2 files changed, 18 insertions, 0 deletions
diff --git a/src/corelib/doc/snippets/code/src_corelib_text_qregularexpression.cpp b/src/corelib/doc/snippets/code/src_corelib_text_qregularexpression.cpp
index c418a1f279..8bf67a9e2d 100644
--- a/src/corelib/doc/snippets/code/src_corelib_text_qregularexpression.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_text_qregularexpression.cpp
@@ -357,6 +357,8 @@ QString wildcard = QRegularExpression::wildcardToRegularExpression("*.jpeg");
{
//! [34]
+// using a raw string literal, R"(raw_characters)", to be able to use "\w"
+// without having to escape the backslash as "\\w"
QRegularExpression re(R"(\w+)");
QString subject("the quick fox");
for (const QRegularExpressionMatch &match : re.globalMatch(subject)) {
@@ -364,4 +366,12 @@ for (const QRegularExpressionMatch &match : re.globalMatch(subject)) {
}
//! [34]
}
+
+{
+//! [35]
+// matches two digits followed by a space and a word
+QRegularExpression re(R"(\d\d \w+)");
+//! [35]
+}
+
}
diff --git a/src/corelib/text/qregularexpression.cpp b/src/corelib/text/qregularexpression.cpp
index fd0e10dfe6..1127b77831 100644
--- a/src/corelib/text/qregularexpression.cpp
+++ b/src/corelib/text/qregularexpression.cpp
@@ -140,6 +140,14 @@ QT_BEGIN_NAMESPACE
\snippet code/src_corelib_text_qregularexpression.cpp 2
+ Alternatively, you can use a
+ \l {https://en.cppreference.com/w/cpp/language/string_literal} {raw string literal},
+ in which case you don't need to escape backslashes in the pattern, all characters
+ between \c {R"(...)"} are considered raw characters. As you can see in the following
+ example, this simplifies writing patterns:
+
+ \snippet code/src_corelib_text_qregularexpression.cpp 35
+
The pattern() function returns the pattern that is currently set for a
QRegularExpression object: