This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
collection:Substrings_In [2017/09/07 05:09] peternlewis |
collection:Substrings_In [2018/05/09 22:59] peternlewis Improved description of range |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== For Each Substrings In RegEx Match ====== | ||
+ | |||
The //Substrings In collection// contains the matches in the specified source. | The //Substrings In collection// contains the matches in the specified source. | ||
Line 5: | Line 7: | ||
You can scan for exact string matches, case insensitive string matches, or regular expression matches. | You can scan for exact string matches, case insensitive string matches, or regular expression matches. | ||
- | The result, stored in the [[action:For_Each| For Each action ]] variable, can be either the matched string, the position of the match or the range (position,length) of the match. | + | The result, stored in the [[action:For_Each| For Each action ]] variable, can be either: |
- | So, let's assume you've used a variable theRange to store the range in a For Each action. | + | * the matched string: the For Each variable is set to the value of the matched string. |
+ | * the position of the match: the For Each variable is set to the position of the match (starting at 1). | ||
+ | * the range of the match: the For Each variable is set to the range (position,length) of the match. | ||
- | It can be referenced by: | + | For the range option, the variable contains the position and length with a comma between them, so you can use the normal variable array indexing to access the two numbers, eg if the For Each variable is theRange, then theRange[1] would be the position, and theRange[2] would be the length of the match. |
- | theRange[1] | + | Here's a practical example which superscripts all the numbers in the clipboard. |
- | theRange[2] | + | |
- | The range is a comma separated list of values: | + | {{ :collection:for_each_apply_style_to_clipboard.png?nolink&510 | Apply Superscript to Numbers in Clipboard }} |
- | + | ||
- | n1,n2 | + | |
- | + | ||
- | OR | + | |
- | + | ||
- | Start-of-Match,Length-of-Match | + | |
- | + | ||
- | So the the normal Keyboard Maestro substring notation works with it. | + | |
- | + | ||
- | It's all too easy to get misdirected into thinking the numbers reference match 1, match 2 – but this is not the case. | + | |
- | + | ||
- | Here's a practical example | + | |
- | + | ||
- | {{ :collection:for_each_apply_style_to_clipboard.jpg?nolink |}} | + | |
===== See Also ===== | ===== See Also ===== | ||
Line 35: | Line 24: | ||
* [[action:For_Each|For Each]] | * [[action:For_Each|For Each]] | ||
- | |||