mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-25 10:18:34 -06:00
Merge topic 'doc-CMAKE_MATCH_n'
eb08e1feHelp: Document CMAKE_MATCH_<n> variables8dd99752Help: Link from if(MATCHES) to regex specification docsa0091a69Help: Format string() command regex specification docs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !719
This commit is contained in:
@@ -103,7 +103,8 @@ Possible expressions are:
|
||||
|
||||
``if(<variable|string> MATCHES regex)``
|
||||
True if the given string or variable's value matches the given regular
|
||||
expression.
|
||||
expression. See :ref:`Regex Specification` for regex format.
|
||||
``()`` groups are captured in :variable:`CMAKE_MATCH_<n>` variables.
|
||||
|
||||
``if(<variable|string> LESS <variable|string>)``
|
||||
True if the given string or variable's value is a valid number and less
|
||||
|
||||
@@ -77,31 +77,43 @@ The replace expression may refer to paren-delimited subexpressions of the
|
||||
match using ``\1``, ``\2``, ..., ``\9``. Note that two backslashes (``\\1``)
|
||||
are required in CMake code to get a backslash through argument parsing.
|
||||
|
||||
.. _`Regex Specification`:
|
||||
|
||||
Regex Specification
|
||||
"""""""""""""""""""
|
||||
|
||||
The following characters have special meaning in regular expressions:
|
||||
|
||||
::
|
||||
|
||||
^ Matches at beginning of input
|
||||
$ Matches at end of input
|
||||
. Matches any single character
|
||||
[ ] Matches any character(s) inside the brackets
|
||||
[^ ] Matches any character(s) not inside the brackets
|
||||
- Inside brackets, specifies an inclusive range between
|
||||
characters on either side e.g. [a-f] is [abcdef]
|
||||
To match a literal - using brackets, make it the first
|
||||
or the last character e.g. [+*/-] matches basic
|
||||
mathematical operators.
|
||||
* Matches preceding pattern zero or more times
|
||||
+ Matches preceding pattern one or more times
|
||||
? Matches preceding pattern zero or once only
|
||||
| Matches a pattern on either side of the |
|
||||
() Saves a matched subexpression, which can be referenced
|
||||
in the REGEX REPLACE operation. Additionally it is saved
|
||||
by all regular expression-related commands, including
|
||||
e.g. if( MATCHES ), in the variables CMAKE_MATCH_(0..9).
|
||||
``^``
|
||||
Matches at beginning of input
|
||||
``$``
|
||||
Matches at end of input
|
||||
``.``
|
||||
Matches any single character
|
||||
``[ ]``
|
||||
Matches any character(s) inside the brackets
|
||||
``[^ ]``
|
||||
Matches any character(s) not inside the brackets
|
||||
``-``
|
||||
Inside brackets, specifies an inclusive range between
|
||||
characters on either side e.g. ``[a-f]`` is ``[abcdef]``
|
||||
To match a literal ``-`` using brackets, make it the first
|
||||
or the last character e.g. ``[+*/-]`` matches basic
|
||||
mathematical operators.
|
||||
``*``
|
||||
Matches preceding pattern zero or more times
|
||||
``+``
|
||||
Matches preceding pattern one or more times
|
||||
``?``
|
||||
Matches preceding pattern zero or once only
|
||||
``|``
|
||||
Matches a pattern on either side of the ``|``
|
||||
``()``
|
||||
Saves a matched subexpression, which can be referenced
|
||||
in the ``REGEX REPLACE`` operation. Additionally it is saved
|
||||
by all regular expression-related commands, including
|
||||
e.g. :command:`if(MATCHES)`, in the variables
|
||||
:variable:`CMAKE_MATCH_<n>` for ``<n>`` 0..9.
|
||||
|
||||
``*``, ``+`` and ``?`` have higher precedence than concatenation. ``|``
|
||||
has lower precedence than concatenation. This means that the regular
|
||||
|
||||
@@ -56,6 +56,7 @@ Variables that Provide Information
|
||||
/variable/CMAKE_MAJOR_VERSION
|
||||
/variable/CMAKE_MAKE_PROGRAM
|
||||
/variable/CMAKE_MATCH_COUNT
|
||||
/variable/CMAKE_MATCH_n
|
||||
/variable/CMAKE_MINIMUM_REQUIRED_VERSION
|
||||
/variable/CMAKE_MINOR_VERSION
|
||||
/variable/CMAKE_PARENT_LIST_FILE
|
||||
|
||||
@@ -3,6 +3,7 @@ CMAKE_MATCH_COUNT
|
||||
|
||||
The number of matches with the last regular expression.
|
||||
|
||||
When a regular expression match is used, CMake fills in ``CMAKE_MATCH_<n>``
|
||||
variables with the match contents. The ``CMAKE_MATCH_COUNT`` variable holds
|
||||
the number of match expressions when these are filled.
|
||||
When a regular expression match is used, CMake fills in
|
||||
:variable:`CMAKE_MATCH_<n>` variables with the match contents.
|
||||
The ``CMAKE_MATCH_COUNT`` variable holds the number of match
|
||||
expressions when these are filled.
|
||||
|
||||
10
Help/variable/CMAKE_MATCH_n.rst
Normal file
10
Help/variable/CMAKE_MATCH_n.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_MATCH_<n>
|
||||
---------------
|
||||
|
||||
Capture group ``<n>`` matched by the last regular expression, for groups
|
||||
0 through 9. Group 0 is the entire match. Groups 1 through 9 are the
|
||||
subexpressions captured by ``()`` syntax.
|
||||
|
||||
When a regular expression match is used, CMake fills in ``CMAKE_MATCH_<n>``
|
||||
variables with the match contents. The :variable:`CMAKE_MATCH_COUNT`
|
||||
variable holds the number of match expressions when these are filled.
|
||||
Reference in New Issue
Block a user