User Tools

Site Tools


action:Search_and_Replace

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
action:Search_and_Replace [2019/06/26 01:50]
peternlewis
action:Search_and_Replace [2023/09/12 05:30] (current)
peternlewis
Line 3: Line 3:
 Prior to v8.0 there were separate Search and Replace Variable and Search and Replace Clipboard actions and the results always went back to the source variable or clipboard. Prior to v8.0 there were separate Search and Replace Variable and Search and Replace Clipboard actions and the results always went back to the source variable or clipboard.
  
-{{:​action:​searchreplace.png?​nolink&516|}}+{{:​action:​searchreplace.png?​nolink|}}
  
 You can search for: You can search for:
Line 15: Line 15:
 Select the kind of search to run, from the //using// pop-up. Then enter the text to search for in the text area. Select the kind of search to run, from the //using// pop-up. Then enter the text to search for in the text area.
  
-Enter what to replace the found text with in the //and replace with// text area. Use the arrow at the right of the text area to select variables, clipboards and other tokens to enter in the text area.  +Enter what to replace the found text with in the //and replace with// text area. Use the arrow at the right of the text area to select variables, clipboards and other tokens to enter in the text area.
  
 For regular expressions,​ the replacement can refer to capture groups using either `$1` or `\1` notation (eg `%Calculate%CHARACTERS(\1)%` would be the count of characters in the first capture match (v8+)), or named capture groups (using `(?<​name>​...)` with the notation `${name}`. For regular expressions,​ the replacement can refer to capture groups using either `$1` or `\1` notation (eg `%Calculate%CHARACTERS(\1)%` would be the count of characters in the first capture match (v8+)), or named capture groups (using `(?<​name>​...)` with the notation `${name}`.
  
-Like other [[/​Text_Fields|Text Fields]], you can use text case conversion escape sequences like `\U` and `\L` in the replacement field.+Like other [[/​Text_Fields|Text Fields]], you can use [[manual:​Tokens#​Text_Case_Conversions | text case conversion]] escape sequences like `\U` and `\L` in the replacement field.
  
 Select where you want the result to be saved (back to the source, or to some other variable or clipboard or file). Select where you want the result to be saved (back to the source, or to some other variable or clipboard or file).
 +
 +Using the action (gear) ⚙ menu, you can select (v10.0+) to replace all, or only the first or last match.
  
 Examples: Examples:
Line 35: Line 37:
  
 {{:​action:​search-replace-example-result.png?​nolink&​511|}} {{:​action:​search-replace-example-result.png?​nolink&​511|}}
 +
 +Note that you can use tokens in the replace field (eg `%Variable%Whatever%`),​ but that when those tokens are expanded, the contents will themselves not be further expanded, so, for example you could not have a variable that contains `$1` and expect that to be replaced by a the corresponding capture group. You could use an AppleScript like this:
 +
 +```applescript
 +tell application "​Keyboard Maestro Engine"​
 + set src to getvariable "​Source"​
 + set s to getvariable "​Search"​
 + set r to getvariable "​Replace"​
 + set o to search src for s replace r with regex
 +end tell
 +```
  
 ===== See Also ===== ===== See Also =====
Line 40: Line 53:
 === Actions === === Actions ===
  
 +* [[action:​Search_using_Regular_Expression|Search using Regular Expression]] action
 * [[:​Actions|See all Actions]] * [[:​Actions|See all Actions]]
  
action/Search_and_Replace.1561528243.txt.gz · Last modified: 2019/06/26 01:50 by peternlewis