From 9b32ca4c47ad2e5b18b6a66da5d14f96f3f0bc89 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 10:01:05 +0000 Subject: [PATCH 01/14] Text property type changed to input --- .../Reference/Blocks/Text/find-text/find-all-text-block.md | 2 +- .../2023.11/Reference/Blocks/Text/find-text/find-text-block.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-all-text-block.md b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-all-text-block.md index 017e28955..ad7aa48a6 100644 --- a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-all-text-block.md +++ b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-all-text-block.md @@ -416,7 +416,7 @@ The [Text][Text Property] to find all occurrences of [Text To Find][TextToFind P | | | |--------------------|---------------------------| | Data Type | [String][] | -| Property Type | [InputOutput][] | +| Property Type | [Input][] | | Is [Advanced][] | `false` | | Default Editor | [Variable][] | | Default Value | `($)Text` with no value | diff --git a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md index ceea73cdc..9027a7e64 100644 --- a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md +++ b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md @@ -434,7 +434,7 @@ The [Text][Text Property] to find the specified occurrence of [Text To Find][Tex | | | |--------------------|---------------------------| | Data Type | [String][] | -| Property Type | [InputOutput][] | +| Property Type | [Input][] | | Is [Advanced][] | `false` | | Default Editor | [Variable][] | | Default Value | `($)Text` with no value | From 4950ef563b3328fd278bed772581fe2b3a129e7b Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 10:03:40 +0000 Subject: [PATCH 02/14] occurrence default value change --- .../2023.11/Reference/Blocks/Text/find-text/find-text-block.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md index 9027a7e64..5f87eaf3a 100644 --- a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md +++ b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md @@ -475,7 +475,7 @@ For information about [supported values][Occurrences] for the [Occurrence][Occur | Property Type | [Input][] | | Is [Advanced][] | `false` | | Default Editor | [Literal][] | -| Default Value | `0` | +| Default Value | `1` | ### Search Options From 8e3324d5617daa68fdd9ec1ff8c5ccc418becdd3 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 11:23:55 +0000 Subject: [PATCH 03/14] match datatype + external links --- .../Reference/data-types/text/regex/match.md | 95 ++++++++++++++++++- data/urls.toml | 3 + 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index ffa46e477..74cdd3756 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -8,32 +8,125 @@ description: "Used to represent a regex match. It contains all of the groups fou

(Cortex.DataTypes.Text.Regex.Match)

-{{< workinprogress >}} +{{}} ## Summary +The `Match` data type is used to represent a regex match. It contains all of the [Groups][Group] found in the regex pattern. + +| | | +|-|-| +| **Category:** | Regex | +| **Name:** | `Match` | +| **Full Name:** | `Cortex.DataTypes.Text.Regex.Match` | +| **Alias:** | N/A | +| **Description:** | A regex match. | +| **Default Value:** | null | +| **Can be used as:** | `Match`, `Object`, `dynamic` | +| **Can be cast to:** | N/A | + ## Properties ### Value +The Value is the matched [String][] of the regex match. + +| | | +|--------------------|---------------------------| +| Data Type | [String][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ### Index +The index in the source text at which the regex match starts. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ### Length +The length of this regex match's value. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ### Groups +The dictionary of [Groups][Group] in this match. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. + +| | | +|--------------------|---------------------------| +| Data Type | [Dictionary][]<[String][], [Group][]> | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ## Remarks ### Create a Match +The following table shows some of the ways that a `Match` can be created. + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Construct `Match` | `new Match{Value = "", Index = 0, Length = 0, Groups = {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | Expression | No constructor exists for this data type. | + +### Convert Match to Text + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | N/A | See [Convert Object to Json] | + ### Property Editor Support +- The Expression Editor is available for [Input][] properties where the data type is `Match`. +- The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Match`. + ### Known Limitations +None + ## See Also ### Related Data Types +* [Dictionary][] +* [Group][] +* [Int32][] +* [String][] + ### Related Concepts +* [Working with Text][] + ### External Documentation + +* [System.Text.RegularExpressions.Match][] + +[Value Property]: {{#ref "#value"}} + +[Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} +[Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} +[InputOutput]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.InputOutput" >}} +[Expression]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.ExpressionEditor.MainDoc" >}} +[Literal]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.LiteralEditor.MainDoc" >}} +[Advanced]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.AdvancedProperties.MainDoc" >}} + +[System.Text.RegularExpressions.Match]: {{< url path="MSDocs.DotNet.Api.System.Text.RegularExpressions.Match" >}} + +[Dictionary]: {{}} +[Int32]: {{}} +[String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} +[Group]: {{}} + +[Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} diff --git a/data/urls.toml b/data/urls.toml index f7eb5df1a..2203608be 100644 --- a/data/urls.toml +++ b/data/urls.toml @@ -2369,6 +2369,9 @@ [MSDocs.DotNet.Api.System.Globalization] CultureInfo = "https://learn.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo" [MSDocs.DotNet.Api.System.Text.RegularExpressions] + Capture = "https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.capture" + Group = "https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.group" + Match = "https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.match" RegexMatchTimeoutException = "https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regexmatchtimeoutexception" [MSDocs.DotNet.Api.System.Net] NetworkCredential = "https://learn.microsoft.com/en-us/dotnet/api/system.net.networkcredential" From 23091de91f940539b7042fe5a56580caed524c93 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 11:31:20 +0000 Subject: [PATCH 04/14] correct default values --- .../docs/2023.11/Reference/data-types/text/regex/match.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index 74cdd3756..e47a7b225 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -47,7 +47,7 @@ The index in the source text at which the regex match starts. | Data Type | [Int32][] | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [Int32][] with value `0` | ### Length @@ -58,18 +58,18 @@ The length of this regex match's value. | Data Type | [Int32][] | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [Int32][] with value `0` | ### Groups -The dictionary of [Groups][Group] in this match. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. +The dictionary of [Groups][Group] in this match. The key [String][] is the [Group][] name. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. | | | |--------------------|---------------------------| | Data Type | [Dictionary][]<[String][], [Group][]> | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [Dictionary][]<[String][], [Group][]> with value `{}` | ## Remarks From d36e4e7219f831fa779f278cca3e7a9481c67fdf Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 11:48:13 +0000 Subject: [PATCH 05/14] group added, match typos + links fixed --- .../Reference/data-types/text/regex/group.md | 92 +++++++++++++++++++ .../Reference/data-types/text/regex/match.md | 5 +- 2 files changed, 95 insertions(+), 2 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index b88c623ae..831a2e3ec 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -12,28 +12,120 @@ description: "Used to represent a regex match group. It contains all of the capt ## Summary +The `Group` data type is used to represent a regex match group. It contains all of the [Captures][CaptureDetails] for a given group pattern. + +| | | +|-|-| +| **Category:** | Regex | +| **Name:** | `Group` | +| **Full Name:** | `Cortex.DataTypes.Text.Regex.Group` | +| **Alias:** | N/A | +| **Description:** | A regex match group. | +| **Default Value:** | null | +| **Can be used as:** | `Group`, `Object`, `dynamic` | +| **Can be cast to:** | N/A | + ## Properties ### Value +The Value is the matched [String][] of the regex match group. + +| | | +|--------------------|---------------------------| +| Data Type | [String][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ### Index +The index in the source text at which the regex match group starts. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | [Int32][] with value `0` | + ### Length +The length of this regex match's value. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | [Int32][] with value `0` | + ### Captures +The list of [Captures][CaptureDetails] for this regex match group. + +| | | +|--------------------|---------------------------| +| Data Type | IReadOnlyList<[CaptureDetails][]> | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ## Remarks ### Create a Group +The following table shows some of the ways that a `Group` can be created. + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Construct `Match` | `new Group{Value = "", Index = 0, Length = 0, Captures = new List()}` | `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | Expression | No proper constructor exists for this data type. | + +### Convert a Group to Text + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0,\r\n \"Captures\": []\r\n}"` | N/A | See [Convert Object to Json][] | + ### Property Editor Support +- The Expression Editor is available for [Input][] properties where the data type is `Match`. +- The Literal Editor is available for [Input][] properties where the data type is `Match`. +- The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Match`. + ### Known Limitations +None + ## See Also ### Related Data Types +* [CaptureDetails][] +* IReadOnlyList +* [Int32][] +* [String][] + ### Related Concepts +* [Working with Text][] + ### External Documentation + +* [System.Text.RegularExpressions.Group][] + +[Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} +[Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} +[InputOutput]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.InputOutput" >}} +[Expression]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.ExpressionEditor.MainDoc" >}} +[Literal]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.LiteralEditor.MainDoc" >}} +[Advanced]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.AdvancedProperties.MainDoc" >}} + +[System.Text.RegularExpressions.Group]: {{< url path="MSDocs.DotNet.Api.System.Text.RegularExpressions.Group" >}} + +[CaptureDetails]: {{}} +[Dictionary]: {{}} +[Int32]: {{}} +[String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} + +[Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index e47a7b225..d106c5694 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -79,17 +79,18 @@ The following table shows some of the ways that a `Match` can be created. | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Construct `Match` | `new Match{Value = "", Index = 0, Length = 0, Groups = {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | Expression | No constructor exists for this data type. | +| Construct `Match` | `new Match{Value = "", Index = 0, Length = 0, Groups = {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | Expression | | ### Convert Match to Text | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | N/A | See [Convert Object to Json] | +| Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0,\r\n \"Groups\": {}\r\n}"` | N/A | See [Convert Object to Json][] | ### Property Editor Support - The Expression Editor is available for [Input][] properties where the data type is `Match`. +- The Literal Editor is available for [Input][] properties where the data type is `Match`. - The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Match`. ### Known Limitations From 91959bc746c6d3345b7ae752f042cd8efbcd429b Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 11:54:42 +0000 Subject: [PATCH 06/14] rewrite properties to better fit code XML docs --- .../docs/2023.11/Reference/data-types/text/regex/group.md | 8 ++++---- .../docs/2023.11/Reference/data-types/text/regex/match.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index 831a2e3ec..c2d946e87 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -29,7 +29,7 @@ The `Group` data type is used to represent a regex match group. It contains all ### Value -The Value is the matched [String][] of the regex match group. +The Value is the value of the last [capture][CaptureDetails] for this group. | | | |--------------------|---------------------------| @@ -40,7 +40,7 @@ The Value is the matched [String][] of the regex match group. ### Index -The index in the source text at which the regex match group starts. +The starting index of the first [capture][CaptureDetails] for this group in the input text. | | | |--------------------|---------------------------| @@ -51,7 +51,7 @@ The index in the source text at which the regex match group starts. ### Length -The length of this regex match's value. +The length of the matched group text. | | | |--------------------|---------------------------| @@ -62,7 +62,7 @@ The length of this regex match's value. ### Captures -The list of [Captures][CaptureDetails] for this regex match group. +The list of [captures][CaptureDetails] found for this regex match group. If there were no captures, this is an empty list. | | | |--------------------|---------------------------| diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index d106c5694..d17182ffd 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -29,7 +29,7 @@ The `Match` data type is used to represent a regex match. It contains all of the ### Value -The Value is the matched [String][] of the regex match. +The value of the full match. | | | |--------------------|---------------------------| @@ -40,7 +40,7 @@ The Value is the matched [String][] of the regex match. ### Index -The index in the source text at which the regex match starts. +The starting index of the regex match in the input text. | | | |--------------------|---------------------------| @@ -51,7 +51,7 @@ The index in the source text at which the regex match starts. ### Length -The length of this regex match's value. +The length of this regex match. | | | |--------------------|---------------------------| @@ -62,7 +62,7 @@ The length of this regex match's value. ### Groups -The dictionary of [Groups][Group] in this match. The key [String][] is the [Group][] name. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. +The dictionary of [Groups][Group] in this match. The key [String][] is the [Group][] name. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. Unnamed groups will have keys starting from `"1"`, `"2"`, etc. | | | |--------------------|---------------------------| From 183c1e89d0adc3075cc57c8f321f01ad0696356e Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 11:58:08 +0000 Subject: [PATCH 07/14] typo --- .../en/docs/2023.11/Reference/data-types/text/regex/group.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index c2d946e87..41bf30a0a 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -79,7 +79,7 @@ The following table shows some of the ways that a `Group` can be created. | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Construct `Match` | `new Group{Value = "", Index = 0, Length = 0, Captures = new List()}` | `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | Expression | No proper constructor exists for this data type. | +| Construct `Group` | `new Group{Value = "", Index = 0, Length = 0, Captures = new List()}` | `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | Expression | No proper constructor exists for this data type. | ### Convert a Group to Text From 313e8a51a36a655263ff642e98a54eff5e6664b3 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 12:01:18 +0000 Subject: [PATCH 08/14] typos --- .../docs/2023.11/Reference/data-types/text/regex/group.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index 41bf30a0a..3a9e840aa 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -89,9 +89,9 @@ The following table shows some of the ways that a `Group` can be created. ### Property Editor Support -- The Expression Editor is available for [Input][] properties where the data type is `Match`. -- The Literal Editor is available for [Input][] properties where the data type is `Match`. -- The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Match`. +- The Expression Editor is available for [Input][] properties where the data type is `Group`. +- The Literal Editor is available for [Input][] properties where the data type is `Group`. +- The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Group`. ### Known Limitations From b9ea1e568c1f4d3416015492325544488cc97ba5 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 12:08:15 +0000 Subject: [PATCH 09/14] capture details, fix links --- .../data-types/text/regex/capturedetails.md | 85 ++++++++++++++++++- .../Reference/data-types/text/regex/group.md | 5 +- .../Reference/data-types/text/regex/match.md | 2 + 3 files changed, 90 insertions(+), 2 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md index 326f21377..f139adf84 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md @@ -12,26 +12,109 @@ description: "Used to represent a single capture for a given group" ## Summary +The `CaptureDetails` data type is used to represent a single capture for a given [Group][]. + +| | | +|-|-| +| **Category:** | Regex | +| **Name:** | `CaptureDetails` | +| **Full Name:** | `Cortex.DataTypes.Text.Regex.CaptureDetails` | +| **Alias:** | N/A | +| **Description:** | A single capture for a given group. | +| **Default Value:** | null | +| **Can be used as:** | `CaptureDetails`, `Object`, `dynamic` | +| **Can be cast to:** | N/A | + ## Properties +### Value + +The value of this capture. + +| | | +|--------------------|---------------------------| +| Data Type | [String][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | `null` | + ### Index -### Value +The starting index of this capture in the input text. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | [Int32][] with value `0` | ### Length +The length of the capture. + +| | | +|--------------------|---------------------------| +| Data Type | [Int32][] | +| Is [Advanced][] | `false` | +| Default Editor | [Expression][] | +| Default Value | [Int32][] with value `0` | + ## Remarks ### Create a CaptureDetails +The following table shows some of the ways that a `CaptureDetails` can be created. + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Construct `CaptureDetails` | `new CaptureDetails{Value = "", Index = 0, Length = 0}` | `{"Value": "","Index": 0,"Length": 0}` | Expression | No proper constructor exists for this data type. | + +### Convert a Group to Text + +| Method | Example | Result | Editor Support | Notes | +|-|-|-|-|-| +| Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0\r\n}"` | N/A | See [Convert Object to Json][] | + ### Property Editor Support +- The Expression Editor is available for [Input][] properties where the data type is `CaptureDetails`. +- The Literal Editor is available for [Input][] properties where the data type is `CaptureDetails`. +- The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `CaptureDetails`. + ### Known Limitations +None + ## See Also ### Related Data Types +* [Group][] +* [Int32][] +* [String][] + ### Related Concepts +* [Working with Text][] + ### External Documentation + +* [System.Text.RegularExpressions.Capture][] + +[Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} +[Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} +[InputOutput]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.InputOutput" >}} +[Expression]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.ExpressionEditor.MainDoc" >}} +[Literal]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.PropertyEditors.LiteralEditor.MainDoc" >}} +[Advanced]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.AdvancedProperties.MainDoc" >}} + +[System.Text.RegularExpressions.Capture]: {{< url path="MSDocs.DotNet.Api.System.Text.RegularExpressions.Capture" >}} + +[Group]: {{}} +[Int32]: {{}} +[String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} + +[Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} + +[Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index 3a9e840aa..1a030fd22 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -12,7 +12,7 @@ description: "Used to represent a regex match group. It contains all of the capt ## Summary -The `Group` data type is used to represent a regex match group. It contains all of the [Captures][CaptureDetails] for a given group pattern. +The `Group` data type is used to represent a [regex match][Match] group. It contains all of the [Captures][CaptureDetails] for a given group pattern. | | | |-|-| @@ -126,6 +126,9 @@ None [CaptureDetails]: {{}} [Dictionary]: {{}} [Int32]: {{}} +[Match]: {{}} [String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} [Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} + +[Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index d17182ffd..cc4171b59 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -131,3 +131,5 @@ None [Group]: {{}} [Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} + +[Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} From 8f5cc15c0d97f4266cce314fc725ec0bd14fc00d Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 12:09:02 +0000 Subject: [PATCH 10/14] missing link --- content/en/docs/2023.11/Reference/data-types/text/regex/group.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index 1a030fd22..d62257181 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -104,6 +104,7 @@ None * [CaptureDetails][] * IReadOnlyList * [Int32][] +* [Match][] * [String][] ### Related Concepts From 8fdac44f8f74c01156a324b57165877ec0e51313 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 13:28:06 +0000 Subject: [PATCH 11/14] remove WIP image --- .../2023.11/Reference/data-types/text/regex/capturedetails.md | 2 -- .../en/docs/2023.11/Reference/data-types/text/regex/group.md | 2 -- .../en/docs/2023.11/Reference/data-types/text/regex/match.md | 2 -- 3 files changed, 6 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md index f139adf84..a94a2ba0e 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md @@ -8,8 +8,6 @@ description: "Used to represent a single capture for a given group"

(Cortex.DataTypes.Text.Regex.CaptureDetails)

-{{< workinprogress >}} - ## Summary The `CaptureDetails` data type is used to represent a single capture for a given [Group][]. diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index d62257181..ca76336a8 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -8,8 +8,6 @@ description: "Used to represent a regex match group. It contains all of the capt

(Cortex.DataTypes.Text.Regex.Group)

-{{< workinprogress >}} - ## Summary The `Group` data type is used to represent a [regex match][Match] group. It contains all of the [Captures][CaptureDetails] for a given group pattern. diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index cc4171b59..5d8e1f742 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -8,8 +8,6 @@ description: "Used to represent a regex match. It contains all of the groups fou

(Cortex.DataTypes.Text.Regex.Match)

-{{}} - ## Summary The `Match` data type is used to represent a regex match. It contains all of the [Groups][Group] found in the regex pattern. From c0c4d29896212c189d332187a4e386ffc2ea13fd Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Wed, 8 Nov 2023 14:24:39 +0000 Subject: [PATCH 12/14] correct property default values to match elsewhere --- .../2023.11/Reference/data-types/text/regex/capturedetails.md | 2 +- .../en/docs/2023.11/Reference/data-types/text/regex/group.md | 4 ++-- .../en/docs/2023.11/Reference/data-types/text/regex/match.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md index a94a2ba0e..e7b78590a 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md @@ -34,7 +34,7 @@ The value of this capture. | Data Type | [String][] | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [String][] with no value | ### Index diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index ca76336a8..447e31c3d 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -34,7 +34,7 @@ The Value is the value of the last [capture][CaptureDetails] for this group. | Data Type | [String][] | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [String][] with no value. | ### Index @@ -67,7 +67,7 @@ The list of [captures][CaptureDetails] found for this regex match group. If ther | Data Type | IReadOnlyList<[CaptureDetails][]> | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | IReadOnlyList<[CaptureDetails][]> with no value | ## Remarks diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index 5d8e1f742..edba589ed 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -34,7 +34,7 @@ The value of the full match. | Data Type | [String][] | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | `null` | +| Default Value | [String][] with no value | ### Index @@ -112,7 +112,7 @@ None * [System.Text.RegularExpressions.Match][] -[Value Property]: {{#ref "#value"}} +[Value Property]: {{}} [Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} [Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} From 302148d6dd6d314b5723e651e7e2acdf30445054 Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Thu, 9 Nov 2023 09:14:26 +0000 Subject: [PATCH 13/14] docs signoff changes --- .../Blocks/Text/find-text/find-text-block.md | 38 +++++++++--------- .../data-types/collections/ireadonlylist-1.md | 7 ++++ .../data-types/text/regex/capturedetails.md | 31 +++++++++----- .../Reference/data-types/text/regex/group.md | 40 ++++++++++++------- .../Reference/data-types/text/regex/match.md | 30 +++++++++----- data/urls.toml | 2 + 6 files changed, 95 insertions(+), 53 deletions(-) create mode 100644 content/en/docs/2023.11/Reference/data-types/collections/ireadonlylist-1.md diff --git a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md index 5f87eaf3a..a42856e70 100644 --- a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md +++ b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md @@ -17,7 +17,7 @@ Finds the specified [Occurrence][Occurrence Property] of [Text To Find][TextToFi ## Examples -### Find the specified Occurrence of Text To Find (Ordinal) +### Find the first Occurrence of Text To Find (Ordinal) This example will find the first occurrence of `"The"` in `"The quick brown fox jumps over the lazy dog"`. @@ -29,7 +29,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "", "contains": "The", "endsWith": ""}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "", contains: "The", endsWith:"")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `0` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.ContainsText` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.Ordinal` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | @@ -74,7 +74,7 @@ As this example is performing a [case-sensitive, culture-insensitive][Ordinal] c *** -### Find the specified Occurrence of Text To Find (Ordinal Ignore Case) +### Find the second Occurrence of Text To Find (Ordinal Ignore Case) This example will find the second occurrence of `"The"` in `"The quick brown fox jumps over the lazy dog"`. @@ -86,7 +86,7 @@ It performs a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] compari |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "", "contains": "The", "endsWith": ""}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "", contains: "The", endsWith:"")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `2` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.ContainsText` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.OrdinalIgnoreCase` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | @@ -131,7 +131,7 @@ As this example is performing a [case-insensitive, culture-insensitive][OrdinalI *** -### Find the last occurrence of Text To Find +### Find the last Occurrence of Text To Find This example will find the last occurrence of `"The"` in `"The quick brown fox jumps over the lazy dog"`. @@ -150,7 +150,7 @@ It performs a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] compari #### Result -As this example is performing a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] comparison of text, `"The quick brown fox jumps over the lazy dog"` contains the text `"The"` twice; the first occurrence is `"The"` and the second occurrence is `"the"`. As we are looking for [Occurrence][Occurrence Property] `-1`, we choose the last occurrence, and therefore, the variable `($)Match` will be set to the following: +As this example is performing a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] comparison of text, `"The quick brown fox jumps over the lazy dog"` contains the text `"The"` twice; the first occurrence is `"The"` and the second occurrence is `"the"`. The second occurrence is the last occurrence, and therefore, the variable `($)Match` will be set to the following: ```json { @@ -188,9 +188,9 @@ As this example is performing a [case-insensitive, culture-insensitive][OrdinalI *** -### Find an invalid occurrence of Text To Find +### Find an invalid Occurrence of Text To Find -This example will find the third occurrence of `"The"` in `"The quick brown fox jumps over the lazy dog"`. +This example will find the third occurrence of `"The"`, which is not present, in `"The quick brown fox jumps over the lazy dog"`. It performs a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] comparison of text. @@ -200,14 +200,14 @@ It performs a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] compari |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "", "contains": "The", "endsWith": ""}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "", contains: "The", endsWith:"")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `2` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `3` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.ContainsText` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.OrdinalIgnoreCase` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | #### Result -As this example is performing a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] comparison of text, `"The quick brown fox jumps over the lazy dog"` contains the text `"The"` twice; the first occurrence is `"The"` and the second occurrence is `"the"`. As we are looking for [Occurrence][Occurrence Property] `2`, and there are only 2 matches, there is not a valid match. Therefore, the variable `($)Match` will be set to the following: +As this example is performing a [case-insensitive, culture-insensitive][OrdinalIgnoreCase] comparison of text, `"The quick brown fox jumps over the lazy dog"` contains the text `"The"` twice; the first occurrence is `"The"` and the second occurrence is `"the"`. There is no match for the third [Occurrence][Occurrence Property]. Therefore, the variable `($)Match` will be set to the following: ```json null @@ -215,7 +215,7 @@ null *** -### Find the specified Occurrence that matches the pattern in Text To Find +### Find the first Occurrence that matches the pattern in Text To Find This example will find the first occurrence of text that match a pattern containing `"?he"` in `"The quick brown fox jumps over the lazy dog"`. @@ -227,7 +227,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "", "contains": "?he", "endsWith": ""}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "", contains: "?he", endsWith:"")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `0` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.PatternMatching` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.Ordinal` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | @@ -272,7 +272,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. *** -### Find the specified Occurrence that matches the regex in Text To Find +### Find the first Occurrence that matches the regex in Text To Find This example will find the first occurrence of text that match the regex `"^The"` from `"The quick brown fox jumps over the lazy dog"`. @@ -284,7 +284,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "", "contains": "^The", "endsWith": ""}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "", contains: "^The", endsWith:"")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `0` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.Regex` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.Ordinal` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | @@ -329,7 +329,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. *** -### Find the specified Occurrence that starts with and ends with a Text To Find in Text +### Find the first Occurrence that starts with and ends with a Text To Find in Text This example will find the first occurrence of text that starts with `"The"` and ends with `"jumps"` from `"The quick brown fox jumps over the lazy dog."`. @@ -341,14 +341,14 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog"` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "The", "contains": "", "endsWith": "jumps"}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "The", contains: "", endsWith:"jumps")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `0` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.ContainsText` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.Ordinal` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | #### Result -`"The quick brown fox jumps over the lazy dog"` contains 1 occurrence starting with `"The"` and ending with `"jumps"`, which is `"The quick brown fox jumps"` Therefore, the variable `($)Match` will be set to the following: +`"The quick brown fox jumps over the lazy dog"` contains one occurrence starting with `"The"` and ending with `"jumps"`, which is `"The quick brown fox jumps"` Therefore, the variable `($)Match` will be set to the following: ```json { @@ -398,7 +398,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. *** -### Find the specified Occurrence that starts with and ends with a Text To Find in Text (Null contains) +### Find the first Occurrence that starts with and ends with a Text To Find in Text (Null contains) This example will find the first occurrence of text that start with `"The"`, contains `null` and ends with `"jumps"` from `"The quick brown fox jumps over the lazy dog."`. To clarify, this [Text To Find][TextToFind Property] input is searching for matches of `"Thejumps"` exactly in [Text][Text Property]. @@ -410,7 +410,7 @@ It performs a [case-sensitive, culture-insensitive][Ordinal] comparison of text. |--------------------|---------------------------|------------------------------------------| | [Text][Text Property] | `($)Text`, with value `"The quick brown fox jumps over the lazy dog."` | `($)Text` is a variable of type [String][] | | [Text To Find][TextToFind Property] | `($)TextToFind`, with value `{"startsWith": "The", "contains": null, "endsWith": "jumps"}`

In this example `($)TextToFind` has been set up using the following [Expression][]:

`new TextToFind(startsWith: "The", contains: null, endsWith:"jumps")` | `($)TextToFind` is a variable of type [TextToFind][] | -| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `0` | `($)Occurrence` is a variable of type [Int32][] | +| [Occurrence][Occurrence Property] | `($)Occurrence`, with value `1` | `($)Occurrence` is a variable of type [Int32][] | | [Search Options][SearchOptions Property] | `($)SearchOptions`, with value `SearchOptions.ContainsText` | `($)SearchOptions` is a variable of type [SearchOptions][] | | [Comparison Type][ComparisonType Property] | `($)ComparisonType`, with value `StringComparison.Ordinal` | `($)ComparisonType` is a variable of type [StringComparison][] | | [Match][Match Property] | `($)Match`, with no value | `($)Match` is a variable that will be set to an [Match][] value | diff --git a/content/en/docs/2023.11/Reference/data-types/collections/ireadonlylist-1.md b/content/en/docs/2023.11/Reference/data-types/collections/ireadonlylist-1.md new file mode 100644 index 000000000..fc05b4734 --- /dev/null +++ b/content/en/docs/2023.11/Reference/data-types/collections/ireadonlylist-1.md @@ -0,0 +1,7 @@ +--- +title: "IReadOnlyList" +linkTitle: "IReadOnlyList" +description: "" +--- + +{{}} \ No newline at end of file diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md index e7b78590a..f1aae5ce8 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/capturedetails.md @@ -14,11 +14,11 @@ The `CaptureDetails` data type is used to represent a single capture for a given | | | |-|-| -| **Category:** | Regex | +| **Category:** | Text | | **Name:** | `CaptureDetails` | | **Full Name:** | `Cortex.DataTypes.Text.Regex.CaptureDetails` | | **Alias:** | N/A | -| **Description:** | A single capture for a given group. | +| **Description:** | A `CaptureDetails` represents a single capture for a given [Group][]. | | **Default Value:** | null | | **Can be used as:** | `CaptureDetails`, `Object`, `dynamic` | | **Can be cast to:** | N/A | @@ -27,7 +27,7 @@ The `CaptureDetails` data type is used to represent a single capture for a given ### Value -The value of this capture. +The value of the capture. | | | |--------------------|---------------------------| @@ -38,7 +38,7 @@ The value of this capture. ### Index -The starting index of this capture in the input text. +The starting index of the capture. | | | |--------------------|---------------------------| @@ -49,7 +49,7 @@ The starting index of this capture in the input text. ### Length -The length of the capture. +The length of the [Value][Value Property]. | | | |--------------------|---------------------------| @@ -66,23 +66,29 @@ The following table shows some of the ways that a `CaptureDetails` can be create | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Construct `CaptureDetails` | `new CaptureDetails{Value = "", Index = 0, Length = 0}` | `{"Value": "","Index": 0,"Length": 0}` | Expression | No proper constructor exists for this data type. | +| Use a `CaptureDetails` constructor with object initialisation | `new CaptureDetails{Value = "", Index = 0, Length = 0}` | `{"Value": "","Index": 0,"Length": 0}` | Expression | | -### Convert a Group to Text +### Convert a CaptureDetails to Text | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| +| Use `ToString` | `($)CaptureDetails.ToString()` | `"Cortex.DataTypes.Text.Regex.CaptureDetails"` | Expression | ToString will return the Full Name of the `CaptureDetails` Data Type | +| Use `Convert Object to Text` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0}` | `"Cortex.DataTypes.Text.Regex.CaptureDetails"` | N/A | See [Convert Object to Text][] | | Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0\r\n}"` | N/A | See [Convert Object to Json][] | ### Property Editor Support - The Expression Editor is available for [Input][] properties where the data type is `CaptureDetails`. -- The Literal Editor is available for [Input][] properties where the data type is `CaptureDetails`. +- The Literal Editor is not available for [Input][] properties where the data type is `CaptureDetails`. - The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `CaptureDetails`. ### Known Limitations -None +#### ToString Method always returns the Full Name + +Currently, if the `ToString()` method is used on a `CaptureDetails`, then its Full Name will be returned; instead of a representation of the data within the `CaptureDetails`. + +In future this limitation may be removed. ## See Also @@ -98,7 +104,11 @@ None ### External Documentation -* [System.Text.RegularExpressions.Capture][] +None + +[Value Property]: {{}} +[Index Property]: {{}} +[Length Property]: {{}} [Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} [Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} @@ -114,5 +124,6 @@ None [String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} [Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} +[Convert Object To Text]: {{< url path="Cortex.Reference.Blocks.Objects.ConvertObject.ConvertObjectToText.MainDoc" >}} [Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md index 447e31c3d..1b11e02e1 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/group.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/group.md @@ -10,15 +10,15 @@ description: "Used to represent a regex match group. It contains all of the capt ## Summary -The `Group` data type is used to represent a [regex match][Match] group. It contains all of the [Captures][CaptureDetails] for a given group pattern. +The `Group` data type is used to represent a regex [Match][] group. It contains all of the [Captures][CaptureDetails] for a given group pattern. | | | |-|-| -| **Category:** | Regex | +| **Category:** | Text | | **Name:** | `Group` | | **Full Name:** | `Cortex.DataTypes.Text.Regex.Group` | | **Alias:** | N/A | -| **Description:** | A regex match group. | +| **Description:** | A `Group` represents a regex [Match][] group. It contains all of the [Captures][CaptureDetails] for a given group pattern. | | **Default Value:** | null | | **Can be used as:** | `Group`, `Object`, `dynamic` | | **Can be cast to:** | N/A | @@ -27,7 +27,7 @@ The `Group` data type is used to represent a [regex match][Match] group. It cont ### Value -The Value is the value of the last [capture][CaptureDetails] for this group. +The value of the last [CaptureDetails][] within [Captures][Captures Property], this represents the full text captured by the Group. | | | |--------------------|---------------------------| @@ -38,7 +38,7 @@ The Value is the value of the last [capture][CaptureDetails] for this group. ### Index -The starting index of the first [capture][CaptureDetails] for this group in the input text. +The starting index of the first [CaptureDetails][] within [Captures][Captures Property]. | | | |--------------------|---------------------------| @@ -49,7 +49,7 @@ The starting index of the first [capture][CaptureDetails] for this group in the ### Length -The length of the matched group text. +The length of [Value][Value Property]. | | | |--------------------|---------------------------| @@ -60,14 +60,15 @@ The length of the matched group text. ### Captures -The list of [captures][CaptureDetails] found for this regex match group. If there were no captures, this is an empty list. +The list of [CaptureDetails][CaptureDetails] found in the Group. +

If no captures were found, the list will be empty. | | | |--------------------|---------------------------| -| Data Type | IReadOnlyList<[CaptureDetails][]> | +| Data Type | [IReadOnlyList]<[CaptureDetails][]> | | Is [Advanced][] | `false` | | Default Editor | [Expression][] | -| Default Value | IReadOnlyList<[CaptureDetails][]> with no value | +| Default Value | [IReadOnlyList][]<[CaptureDetails][]> with no value | ## Remarks @@ -77,30 +78,36 @@ The following table shows some of the ways that a `Group` can be created. | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Construct `Group` | `new Group{Value = "", Index = 0, Length = 0, Captures = new List()}` | `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | Expression | No proper constructor exists for this data type. | +| Use a `Group` constructor with object initialisation | `new Group{Value = "", Index = 0, Length = 0, Captures = new List()}` | `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | Expression | | ### Convert a Group to Text | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| +| Use `ToString` | `($)Group.ToString()` | `"Cortex.DataTypes.Text.Regex.Group"` | Expression | ToString will return the Full Name of the `Group` Data Type | +| Use `Convert Object to Text` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Captures": new List()}` | `"Cortex.DataTypes.Text.Regex.Group"` | N/A | See [Convert Object to Text][] | | Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Captures": []}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0,\r\n \"Captures\": []\r\n}"` | N/A | See [Convert Object to Json][] | ### Property Editor Support - The Expression Editor is available for [Input][] properties where the data type is `Group`. -- The Literal Editor is available for [Input][] properties where the data type is `Group`. +- The Literal Editor is not available for [Input][] properties where the data type is `Group`. - The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Group`. ### Known Limitations -None +#### ToString Method always returns the Full Name + +Currently, if the `ToString()` method is used on a `Group`, then its Full Name will be returned; instead of a representation of the data within the `Group`. + +In future this limitation may be removed. ## See Also ### Related Data Types * [CaptureDetails][] -* IReadOnlyList +* [IReadOnlyList][] * [Int32][] * [Match][] * [String][] @@ -111,7 +118,10 @@ None ### External Documentation -* [System.Text.RegularExpressions.Group][] +None + +[Captures Property]: {{}} +[Value Property]: {{}} [Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} [Output]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Output" >}} @@ -123,11 +133,13 @@ None [System.Text.RegularExpressions.Group]: {{< url path="MSDocs.DotNet.Api.System.Text.RegularExpressions.Group" >}} [CaptureDetails]: {{}} +[IReadOnlyList]: {{}} [Dictionary]: {{}} [Int32]: {{}} [Match]: {{}} [String]: {{< url path="Cortex.Reference.DataTypes.Text.String.MainDoc" >}} [Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} +[Convert Object To Text]: {{< url path="Cortex.Reference.Blocks.Objects.ConvertObject.ConvertObjectToText.MainDoc" >}} [Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} diff --git a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md index edba589ed..2471f9adb 100644 --- a/content/en/docs/2023.11/Reference/data-types/text/regex/match.md +++ b/content/en/docs/2023.11/Reference/data-types/text/regex/match.md @@ -14,11 +14,11 @@ The `Match` data type is used to represent a regex match. It contains all of the | | | |-|-| -| **Category:** | Regex | +| **Category:** | Text | | **Name:** | `Match` | | **Full Name:** | `Cortex.DataTypes.Text.Regex.Match` | | **Alias:** | N/A | -| **Description:** | A regex match. | +| **Description:** | A `Match` represents a regex match. It contains all of the [Groups][Group] found in the regex pattern. | | **Default Value:** | null | | **Can be used as:** | `Match`, `Object`, `dynamic` | | **Can be cast to:** | N/A | @@ -27,7 +27,7 @@ The `Match` data type is used to represent a regex match. It contains all of the ### Value -The value of the full match. +The value of the text that was matched | | | |--------------------|---------------------------| @@ -38,7 +38,7 @@ The value of the full match. ### Index -The starting index of the regex match in the input text. +The starting index of the regex match. | | | |--------------------|---------------------------| @@ -49,7 +49,7 @@ The starting index of the regex match in the input text. ### Length -The length of this regex match. +The length of [Value][Value Property]. | | | |--------------------|---------------------------| @@ -60,7 +60,9 @@ The length of this regex match. ### Groups -The dictionary of [Groups][Group] in this match. The key [String][] is the [Group][] name. The default group `0` is always included for a valid match, and contains the whole [Value][Value Property] as its value. Unnamed groups will have keys starting from `"1"`, `"2"`, etc. +The dictionary of [Groups][Group] in the match.

Each key in [Groups][Groups Property] represents the name of the [Group][], if a group does not have a name provided they will increment from `"1"` + +[Groups][Groups Property] always contains a default [Group][] representing the full match, the name of this [Group][] is always `"0"`. | | | |--------------------|---------------------------| @@ -77,23 +79,29 @@ The following table shows some of the ways that a `Match` can be created. | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| -| Construct `Match` | `new Match{Value = "", Index = 0, Length = 0, Groups = {}}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | Expression | | +| Use a `Match` constructor with object initialisation | `new Match{Value = "", Index = 0, Length = 0, Groups = new Dictionary()}` | `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | Expression | | ### Convert Match to Text | Method | Example | Result | Editor Support | Notes | |-|-|-|-|-| +| Use `ToString` | `($)Match.ToString()` | `"Cortex.DataTypes.Text.Regex.Match"` | Expression | ToString will return the Full Name of the `Match` Data Type | +| Use `Convert Object to Text` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | `"Cortex.DataTypes.Text.Regex.Match"` | N/A | See [Convert Object to Text][] | | Use `Convert Object to Json` block | where `Object` property has a value of `{"Value": "","Index": 0,"Length": 0,"Groups": {}}` | `"{\r\n \"Value\": \"\",\r\n \"Index\": 0,\r\n \"Length\": 0,\r\n \"Groups\": {}\r\n}"` | N/A | See [Convert Object to Json][] | ### Property Editor Support - The Expression Editor is available for [Input][] properties where the data type is `Match`. -- The Literal Editor is available for [Input][] properties where the data type is `Match`. +- The Literal Editor is not available for [Input][] properties where the data type is `Match`. - The Variable Editor is available for [Input][], [InputOutput][] and [Output][] properties where the data type is `Match`. ### Known Limitations -None +#### ToString Method always returns the Full Name + +Currently, if the `ToString()` method is used on a `Match`, then its Full Name will be returned; instead of a representation of the data within the `Match`. + +In future this limitation may be removed. ## See Also @@ -110,8 +118,9 @@ None ### External Documentation -* [System.Text.RegularExpressions.Match][] +None +[Groups Property]: {{}} [Value Property]: {{}} [Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} @@ -129,5 +138,6 @@ None [Group]: {{}} [Convert Object To Json]: {{< url path="Cortex.Reference.Blocks.Json.ConvertJson.ConvertObjectToJson.MainDoc" >}} +[Convert Object To Text]: {{< url path="Cortex.Reference.Blocks.Objects.ConvertObject.ConvertObjectToText.MainDoc" >}} [Working with Text]: {{< url path="Cortex.Reference.Concepts.WorkingWith.Text.MainDoc" >}} diff --git a/data/urls.toml b/data/urls.toml index 2203608be..6a7c4e331 100644 --- a/data/urls.toml +++ b/data/urls.toml @@ -1313,6 +1313,8 @@ MainDoc = "/docs/reference/data-types/collections/ienumerable-1" [Cortex.Reference.DataTypes.Collections.IList] MainDoc = "/docs/reference/data-types/collections/ilist-1" + [Cortex.Reference.DataTypes.Collections.IReadOnlyList] + MainDoc = "/docs/reference/data-types/collections/ireadonlylist-1" [Cortex.Reference.DataTypes.Collections.List] MainDoc = "/docs/reference/data-types/collections/list-1" CreateNew = "/docs/reference/data-types/collections/list-1#create-a-listlttitemgt" From 04f1d14d040b37bffcb3c9b95005754f12dbe8da Mon Sep 17 00:00:00 2001 From: Anan Venkatesh Date: Thu, 9 Nov 2023 09:41:27 +0000 Subject: [PATCH 14/14] fix links --- .../Reference/Blocks/Text/find-text/find-text-block.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md index a42856e70..9006b7c7c 100644 --- a/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md +++ b/content/en/docs/2023.11/Reference/Blocks/Text/find-text/find-text-block.md @@ -552,16 +552,16 @@ If all properties of [Text To Find][TextToFind Property] are `null` or empty (i. ### Null or empty property of Text To Find -If at least one, but not all properties of [Text To Find][TextToFind Property] are `null` or empty (i.e. `""`), then that section of the query is not included as a specific [Group][] in the returned [Match][]; see [Find the specified Occurrence that starts with and ends with a Text To Find in Text][]. +If at least one, but not all properties of [Text To Find][TextToFind Property] are `null` or empty (i.e. `""`), then that section of the query is not included as a specific [Group][] in the returned [Match][]; see [Find the first Occurrence that starts with and ends with a Text To Find in Text][]. There exist two special cases involving the [Contains][] nested property of [Text To Find][TextToFind Property]; see below. #### Empty contains property of Text To Find -If the [Contains][] nested property of [Text To Find][TextToFind Property] is empty (i.e. `""`), and both the [StartsWith][] and [EndsWith][] nested properties are not null, then a valid match will be one starting with [StartsWith][], and ending with [EndsWith][], including any content between the two groups; see [Find the specified Occurrence that starts with and ends with a Text To Find in Text][]. +If the [Contains][] nested property of [Text To Find][TextToFind Property] is empty (i.e. `""`), and both the [StartsWith][] and [EndsWith][] nested properties are not null, then a valid match will be one starting with [StartsWith][], and ending with [EndsWith][], including any content between the two groups; see [Find the first Occurrence that starts with and ends with a Text To Find in Text][]. #### Null contains property of Text To Find -If the [Contains][] nested property of [Text To Find][TextToFind Property] is `null`, and both the [StartsWith][] and [EndsWith][] nested properties are not null, then a valid match will be one starting with [StartsWith][], and ending with [EndsWith][], with no content between the two groups, i.e. an exact match only; see [Find the specified Occurrence that starts with and ends with a Text To Find in Text (Null contains)][]. +If the [Contains][] nested property of [Text To Find][TextToFind Property] is `null`, and both the [StartsWith][] and [EndsWith][] nested properties are not null, then a valid match will be one starting with [StartsWith][], and ending with [EndsWith][], with no content between the two groups, i.e. an exact match only; see [Find the first Occurrence that starts with and ends with a Text To Find in Text (Null contains)][]. ### Known Limitations @@ -573,8 +573,8 @@ If [Search Options][SearchOptions Property] is set to `SearchOptions.Regex` or ` [TextToFind Property]: {{< ref "#text-to-find" >}} [SearchOptions Property]: {{< ref "#search-options" >}} [ComparisonType Property]: {{< ref "#comparison-type" >}} -[Find the specified Occurrence that starts with and ends with a Text To Find in Text]: {{}} -[Find the specified Occurrence that starts with and ends with a Text To Find in Text (Null contains)]: {{}} +[Find the first Occurrence that starts with and ends with a Text To Find in Text]: {{}} +[Find the first Occurrence that starts with and ends with a Text To Find in Text (Null contains)]: {{}} [Input]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.Input" >}} [InputOutput]: {{< url path="Cortex.Reference.Concepts.Fundamentals.Blocks.BlockProperties.WhatIsABlockProperty.InputOutput" >}}