QRegularExpression: rename AnchoredMatchOption to AnchorAtOffsetMatchOption

The name of the option may cause confusion due to the fact
that it's not _fully_ anchoring the match, only anchoring it
at the offset passed to match() -- in other words, it's a
"left" anchoring. Deprecate the old name and introduce
a new one that should explain the situation better.

[ChangeLog][QtCore][QRegularExpression] The AnchoredMatchOption
match option has been deprecated in favor of
AnchorAtOffsetMatchOption, which should better describe
that the match is only anchored at the offset.

Change-Id: Ib751e5e488f2d0309a2da6496378247dfa4648de
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
This commit is contained in:
Giuseppe D'Angelo 2020-04-02 14:21:06 +02:00
parent 1812830ac3
commit 9121829916
4 changed files with 14 additions and 6 deletions

View File

@ -291,7 +291,7 @@ void RegularExpressionDialog::refresh()
QRegularExpression::MatchOptions matchOptions = QRegularExpression::NoMatchOption; QRegularExpression::MatchOptions matchOptions = QRegularExpression::NoMatchOption;
if (anchoredMatchOptionCheckBox->isChecked()) if (anchoredMatchOptionCheckBox->isChecked())
matchOptions |= QRegularExpression::AnchoredMatchOption; matchOptions |= QRegularExpression::AnchorAtOffsetMatchOption;
if (dontCheckSubjectStringMatchOptionCheckBox->isChecked()) if (dontCheckSubjectStringMatchOptionCheckBox->isChecked())
matchOptions |= QRegularExpression::DontCheckSubjectStringMatchOption; matchOptions |= QRegularExpression::DontCheckSubjectStringMatchOption;

View File

@ -553,7 +553,7 @@ QT_BEGIN_NAMESPACE
\section2 Caret modes \section2 Caret modes
The AnchoredMatchOption match option can be used to emulate the The AnchorAtOffsetMatchOption match option can be used to emulate the
QRegExp::CaretAtOffset behaviour. There is no equivalent for the other QRegExp::CaretAtOffset behaviour. There is no equivalent for the other
QRegExp::CaretMode modes. QRegExp::CaretMode modes.
@ -788,9 +788,16 @@ QT_BEGIN_NAMESPACE
No match options are set. No match options are set.
\value AnchoredMatchOption \value AnchoredMatchOption
Use AnchorAtOffsetMatchOption instead.
\value AnchorAtOffsetMatchOption
The match is constrained to start exactly at the offset passed to The match is constrained to start exactly at the offset passed to
match() in order to be successful, even if the pattern string does not match() in order to be successful, even if the pattern string does not
contain any metacharacter that anchors the match at that point. contain any metacharacter that anchors the match at that point.
Note that passing this option does not anchor the end of the match
to the end of the subject; if you want to fully anchor a regular
expression, use anchoredPattern().
This enum value has been introduced in Qt 6.0.
\value DontCheckSubjectStringMatchOption \value DontCheckSubjectStringMatchOption
The subject string is not checked for UTF-16 validity before The subject string is not checked for UTF-16 validity before
@ -832,7 +839,7 @@ static int convertToPcreOptions(QRegularExpression::MatchOptions matchOptions)
{ {
int options = 0; int options = 0;
if (matchOptions & QRegularExpression::AnchoredMatchOption) if (matchOptions & QRegularExpression::AnchorAtOffsetMatchOption)
options |= PCRE2_ANCHORED; options |= PCRE2_ANCHORED;
if (matchOptions & QRegularExpression::DontCheckSubjectStringMatchOption) if (matchOptions & QRegularExpression::DontCheckSubjectStringMatchOption)
options |= PCRE2_NO_UTF_CHECK; options |= PCRE2_NO_UTF_CHECK;

View File

@ -110,7 +110,8 @@ public:
enum MatchOption { enum MatchOption {
NoMatchOption = 0x0000, NoMatchOption = 0x0000,
AnchoredMatchOption = 0x0001, AnchoredMatchOption Q_DECL_ENUMERATOR_DEPRECATED_X("Use AnchorAtOffsetMatchOption instead") = 0x0001,
AnchorAtOffsetMatchOption = 0x0001,
DontCheckSubjectStringMatchOption = 0x0002 DontCheckSubjectStringMatchOption = 0x0002
}; };
Q_DECLARE_FLAGS(MatchOptions, MatchOption) Q_DECLARE_FLAGS(MatchOptions, MatchOption)

View File

@ -805,7 +805,7 @@ void tst_QRegularExpression::normalMatch_data()
QTest::newRow("anchoredmatch01") << QRegularExpression("\\d+") QTest::newRow("anchoredmatch01") << QRegularExpression("\\d+")
<< "abc123def" << "abc123def"
<< 0 << 0
<< QRegularExpression::MatchOptions(QRegularExpression::AnchoredMatchOption) << QRegularExpression::MatchOptions(QRegularExpression::AnchorAtOffsetMatchOption)
<< m; << m;
// *** // ***
@ -1212,7 +1212,7 @@ void tst_QRegularExpression::globalMatch_data()
<< "ACA""GTG""CGA""AAA""AAA""AAG""GAA""AAG""AAA""AAA" << "ACA""GTG""CGA""AAA""AAA""AAG""GAA""AAG""AAA""AAA"
<< 0 << 0
<< QRegularExpression::NormalMatch << QRegularExpression::NormalMatch
<< QRegularExpression::MatchOptions(QRegularExpression::AnchoredMatchOption) << QRegularExpression::MatchOptions(QRegularExpression::AnchorAtOffsetMatchOption)
<< matchList; << matchList;
matchList.clear(); matchList.clear();