diff options
author | Brad King <brad.king@kitware.com> | 2018-10-09 10:34:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-10-09 10:34:34 (GMT) |
commit | efa5d5c781abb92e3a634541e89a72b0a520c65f (patch) | |
tree | 7b74be0c6ac9aaf5e93f0b05b977c2577e141213 | |
parent | 92ed3b38cc892b3acb78d9b4f83c35375b854b00 (diff) | |
parent | fab2c2339b2b6a4310103f1fec74f6b8c55a8f01 (diff) | |
download | CMake-efa5d5c781abb92e3a634541e89a72b0a520c65f.zip CMake-efa5d5c781abb92e3a634541e89a72b0a520c65f.tar.gz CMake-efa5d5c781abb92e3a634541e89a72b0a520c65f.tar.bz2 |
Merge branch 'doc-regex-backslash' into release-3.13
Merge-request: !2460
-rw-r--r-- | Help/command/string.rst | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/Help/command/string.rst b/Help/command/string.rst index 29a153a..cc18069 100644 --- a/Help/command/string.rst +++ b/Help/command/string.rst @@ -121,6 +121,11 @@ The following characters have special meaning in regular expressions: Matches at end of input ``.`` Matches any single character +``\<char>`` + Matches the single character specified by ``<char>``. Use this to + match special regex characters, e.g. ``\.`` for a literal ``.`` + or ``\\`` for a literal backslash ``\``. Escaping a non-special + character is unnecessary but allowed, e.g. ``\a`` matches ``a``. ``[ ]`` Matches any character(s) inside the brackets ``[^ ]`` @@ -151,12 +156,9 @@ has lower precedence than concatenation. This means that the regular expression ``^ab+d$`` matches ``abbd`` but not ``ababd``, and the regular expression ``^(ab|cd)$`` matches ``ab`` but not ``abd``. -Backslash (``\``) characters in regular expressions are interpreted -literally and do not escape anything or represent placeholders. -However, CMake language :ref:`Escape Sequences` such as ``\t``, -``\r``, ``\n``, and ``\\`` may be used to construct literal tabs, -carriage returns, newlines, and backslashes (respectively) to pass -in a regex. For example: +CMake language :ref:`Escape Sequences` such as ``\t``, ``\r``, ``\n``, +and ``\\`` may be used to construct literal tabs, carriage returns, +newlines, and backslashes (respectively) to pass in a regex. For example: * The quoted argument ``"[ \t\r\n]"`` specifies a regex that matches any single whitespace character. @@ -164,6 +166,11 @@ in a regex. For example: a single forward slash ``/`` or backslash ``\``. * The quoted argument ``"[A-Za-z0-9_]"`` specifies a regex that matches any single "word" character in the C locale. +* The quoted argument ``"\\(\\a\\+b\\)"`` specifies a regex that matches + the exact string ``(a+b)``. Each ``\\`` is parsed in a quoted argument + as just ``\``, so the regex itself is actually ``\(\a\+\b\)``. This + can alternatively be specified in a :ref:`bracket argument` without + having to escape the backslashes, e.g. ``[[\(\a\+\b\)]]``. Manipulation ^^^^^^^^^^^^ |