This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
collection:Substrings_In [2016/02/08 02:02] ccstone |
collection:Substrings_In [2021/10/14 03:55] (current) peternlewis [Actions] |
||
---|---|---|---|
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. | ||
You can look for matches in the System Clipboard, in a Named Clipboard, in a variable, or in a file. | You can look for matches in the System Clipboard, in a Named Clipboard, in a variable, or in a file. | ||
- | 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, or (v10.0+) for strings separated by 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. | + | |
- | So, let's assume you've used a variable theRange to store the range in a For Each action. | + | The result, stored in the [[action:For_Each| For Each action ]] variable, can be either: |
- | It can be referenced by: | + | * 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. | ||
- | theRange[1] | + | 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[2] | + | |
- | The range is a comma separated list of values: | + | Here's a practical example which superscripts all the numbers in the clipboard. |
- | n1,n2 | + | {{ :collection:for_each_apply_style_to_clipboard.png?nolink&510 | Apply Superscript to Numbers in Clipboard }} |
- | OR | + | ===== See Also ===== |
- | Start-of-Match,Length-of-Match | + | ==== Actions ==== |
- | So the the normal Keyboard Maestro substring notation works with it. | + | * [[action:For_Each|For Each]] |
+ | * [[:Actions|See all Actions]] | ||
- | It's all too easy to get misdirected into thinking the numbers reference match 1, match 2 – but this is not the case. |