From aad3d0b90d4e15929fc19d7aa40c1d24749eb670 Mon Sep 17 00:00:00 2001 From: Justin Bertram Date: Wed, 26 Apr 2023 12:50:21 -0500 Subject: [PATCH] ARTEMIS-4262 clarify wildcard syntax documentation --- docs/user-manual/en/wildcard-syntax.md | 51 +++++++++++++++++++------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/docs/user-manual/en/wildcard-syntax.md b/docs/user-manual/en/wildcard-syntax.md index ba8dc23822..c16b790c4e 100644 --- a/docs/user-manual/en/wildcard-syntax.md +++ b/docs/user-manual/en/wildcard-syntax.md @@ -1,30 +1,55 @@ # Wildcard Syntax -Apache ActiveMQ Artemis uses a specific syntax for representing wildcards in security -settings, address settings and when creating consumers. +Apache ActiveMQ Artemis uses a specific syntax for representing +wildcards in security settings, address settings and when creating +consumers. The syntax is similar to that used by [AMQP](https://www.amqp.org). -An Apache ActiveMQ Artemis wildcard expression contains words delimited by the character -`.` (full stop). +An Apache ActiveMQ Artemis wildcard expression contains **words +separated by a delimiter**. The default delimiter is `.` (full stop). The special characters `#` and `*` also have special meaning and can -take the place of a word. +take the place of a **word**. + +To be clear, the wildcard characters cannot be used like wildcards in +a [regular expression](https://en.wikipedia.org/wiki/Regular_expression). +They operate exclusively on **words separated by a delimiter**. + +## Matching Any Word The character `#` means "match any sequence of zero or more words". +So the wildcard `news.europe.#` would match: + - `news.europe` + - `news.europe.sport` + - `news.europe.politics` + - `news.europe.politics.regional` + +But `news.europe.#` would _not_ match: + - `news.usa` + - `news.usa.sport` + - `entertainment` + +## Matching a Single Word + The character `*` means "match a single word". -So the wildcard `news.europe.#` would match `news.europe`, -`news.europe.sport`, `news.europe.politics`, and -`news.europe.politics.regional` but would _not_ match `news.usa`, -`news.usa.sport` or `entertainment`. +The wildcard `news.*` would match: + - `news.europe` + - `news.usa` -The wildcard `news.*` would match `news.europe`, but not -`news.europe.sport`. +But `news.*` would _not_ match: + - `news.europe.sport` + - `news.usa.sport` + - `news.europe.politics.regional` -The wildcard `news.*.sport` would match `news.europe.sport` and also -`news.usa.sport`, but not `news.europe.politics`. +The wildcard `news.*.sport` would match: + - `news.europe.sport` + - `news.usa.sport` + +But `news.*.sport` would _not_ match: + - `news.europe.politics` ## Customizing the Syntax