User Tools

Site Tools


Regular_Expressions

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
Regular_Expressions [2018/04/09 00:06]
JMichaelTX ADD update to Capture Groups
Regular_Expressions [2018/08/10 02:08] (current)
ccstone [Software]
Line 16: Line 16:
  
 There are many Actions in Keyboard Maestro where you can use a regular expression, which may not be obvious. ​ For more info see [Places where Regular Expressions can be used](https://​forum.keyboardmaestro.com/​t/​places-where-regular-expressions-can-be-used/​4392). There are many Actions in Keyboard Maestro where you can use a regular expression, which may not be obvious. ​ For more info see [Places where Regular Expressions can be used](https://​forum.keyboardmaestro.com/​t/​places-where-regular-expressions-can-be-used/​4392).
- 
- 
----- 
- 
  
 ===== Search Modifiers ===== ===== Search Modifiers =====
Line 40: Line 36:
  
 ===== Capture Groups ===== ===== Capture Groups =====
 +
   * Use the form of `$<​CG#>​`,​ or `\<​CG#>​` (in ver 8+) in the Action Replace box, where `<​CG#>​` is the number for the capture group. ​   * Use the form of `$<​CG#>​`,​ or `\<​CG#>​` (in ver 8+) in the Action Replace box, where `<​CG#>​` is the number for the capture group. ​
   * Examples: ​   * Examples: ​
Line 47: Line 44:
  
 For more information,​ see [[https://​www.regular-expressions.info/​brackets.html | Capture Groups]]. For more information,​ see [[https://​www.regular-expressions.info/​brackets.html | Capture Groups]].
- 
  
  
Line 54: Line 50:
 You can use Keyboard Maestro [[Tokens|Text Tokens]] anywhere appropriate in both the Search pattern and the Replace pattern. You can use Keyboard Maestro [[Tokens|Text Tokens]] anywhere appropriate in both the Search pattern and the Replace pattern.
  
 +
 +===== ICU 55+ Metacharacters =====
 +
 +For the currently complete list, see [ICU Regular Expression Metacharacters](http://​userguide.icu-project.org/​strings/​regexp#​TOC-Regular-Expression-Metacharacters).
 +
 +**New Metacharacters Available in ICU 55+**(([ICU Regular Expression Metacharacters](http://​userguide.icu-project.org/​strings/​regexp#​TOC-Regular-Expression-Metacharacters)))
 +
 +[ICU 55](http://​site.icu-project.org/​download/​55) was released on 2015-04-01, and is available in the follow software versions:
 +  * macOS 10.11+ (El Capitan) except for JavaScript
 +  * Keyboard Maestro Native Actions
 +
 +These Metacharacters offer some powerful solutions to long-standing RegEx problems. These can replace complicated RegEx patterns previously required, and are recommended for use if you are running the required versions. ​ For example, `\h` and `\R`.  ICU 55 is _not_ available in all RegEx engines. ​ A notable exception is JavaScript (and JXA), even in High Sierra. ​ So if you are using the native Keyboard Maestro Actions that use RegEx, it would be available, but not necessarily in Actions that use Execute Script in another language. ​ It is available in Execute AppleScript Actions that use ASObjC RegEx.
 +
 +^   New Metacharacters in ICU 55+(([ICU Regular Expression Metacharacters](http://​userguide.icu-project.org/​strings/​regexp#​TOC-Regular-Expression-Metacharacters))) ​  ^^^
 +^ Character ^ Alternate Expression\\ (Pre ICU 55) ^ Description ^
 +| `\h` | `[^\S\r\n\f]` | Match a Horizontal White Space character.\\ They are characters with Unicode General Category of Space_Separator plus the ASCII tab (\u0009). |
 +| `\H` | `[\S\r\n\f]` | Match a non-Horizontal White Space character. |
 +| `\k<​name>​` | //No Alternative//​ | Named Capture Back Reference. |
 +| `\R` | `(?:​\r?​\n|\r)` | Match a new line character, or the sequence CR LF.\\ The new line characters are \u000a, \u000b, \u000c, \u000d, \u0085, \u2028, \u2029 |
 +| `\v` | `[\n\r]` | Match a new line character.\\ The new line characters are \u000a, \u000b, \u000c, \u000d, \u0085, \u2028, \u2029.\\ Does not match the new line sequence CR LF. |
 +| `\V` | `[^\n\r]` | Match a non-new line character. |
 +For an in-depth discussion, see this Forum topic: [RegEx for Horizontal Whitespace](https://​forum.keyboardmaestro.com/​t/​wiki-update-regex-icu-55-metacharacters/​10788).
 ===== Examples ===== ===== Examples =====
  
Line 76: Line 94:
  
 ===== See also: ===== ===== See also: =====
- 
----- 
  
 === Actions === === Actions ===
Line 98: Line 114:
 * [[:​Triggers|See all Triggers]] * [[:​Triggers|See all Triggers]]
  
----- 
  
 ==== Macros That Use RegEx ==== ==== Macros That Use RegEx ====
Line 123: Line 138:
 ==== Software ==== ==== Software ====
  
-  - [[http://​www.barebones.com/​products/​textwrangler/|TextWrangler ​(freeware text editor with PCRE regular expression support)]]+  - [[http://​www.barebones.com/​products/​bbedit/|BBEdit (commercial) or BBEdit-Lite ​(freeware text editor with PCRE regular expression support)]]
   - [[http://​itunes.apple.com/​us/​app/​patterns-the-regex-app/​id429449079?​mt=12|Patterns — a regular expression analyzer on the app-store]]   - [[http://​itunes.apple.com/​us/​app/​patterns-the-regex-app/​id429449079?​mt=12|Patterns — a regular expression analyzer on the app-store]]
   - [[https://​itunes.apple.com/​us/​app/​regexrx/​id498370702?​mt=12|RegExRX — a regular expression analyzer on the app-store]]   - [[https://​itunes.apple.com/​us/​app/​regexrx/​id498370702?​mt=12|RegExRX — a regular expression analyzer on the app-store]]
   - [[https://​regex101.com|RegEx101.com]] -- Online RegEx Analyzer   - [[https://​regex101.com|RegEx101.com]] -- Online RegEx Analyzer
- 
 ==== Books ==== ==== Books ====
  
Line 147: Line 161:
   - [[http://​www.codeproject.com/​KB/​dotnet/​regextutorial.aspx|CodeProject.com RegExTutorial]]   - [[http://​www.codeproject.com/​KB/​dotnet/​regextutorial.aspx|CodeProject.com RegExTutorial]]
   - [[http://​regexr.com/​|Regexr ​ - Regex testing and explaining, examples and references]]   - [[http://​regexr.com/​|Regexr ​ - Regex testing and explaining, examples and references]]
- 
----- 
  
 Keywords: ​ //Regular Expression, RegEx, RegExp, Find, Replace, Match// Keywords: ​ //Regular Expression, RegEx, RegExp, Find, Replace, Match//
Regular_Expressions.1523246794.txt.gz · Last modified: 2018/04/09 00:06 by JMichaelTX