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
Last revision Both sides next revision
Regular_Expressions [2018/07/08 20:56]
JMichaelTX [ICU 55+ Metacharacters] Add table header
Regular_Expressions [2019/02/03 11:16]
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 ===== ===== ICU 55+ Metacharacters =====
Line 64: Line 59:
 [ICU 55](http://​site.icu-project.org/​download/​55) was released on 2015-04-01, and is available in the follow software versions: [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   * macOS 10.11+ (El Capitan) except for JavaScript
-  * Keyboard Maestro ​8.0+ Native Actions ​[FIXME: ​ Need to confirm KM version]+  * 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. 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.
  
-[FIXME: ​ Need to confirm and complete Alternate Expressions] +^   New Metacharacters in ICU 55+(([ICU Regular Expression Metacharacters](http://​userguide.icu-project.org/​strings/​regexp#​TOC-Regular-Expression-Metacharacters))) ​  ^^^
- +
-^   New Metacharacters in ICU 55+   ^^^+
 ^ Character ^ Alternate Expression\\ (Pre ICU 55) ^ Description ^ ^ 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 Horizontal White Space character.\\ They are characters with Unicode General Category of Space_Separator plus the ASCII tab (\u0009). |
-| `\H` | TBD | Match a non-Horizontal White Space character. | +| `\H` | `[\S\r\n\f]` ​| Match a non-Horizontal White Space character. | 
-| `\k<​name>​` | TBD | Named Capture Back Reference. |+| `\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 | | `\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 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` | TBD | Match a non-new line character. | +| `\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 103: Line 94:
  
 ===== See also: ===== ===== See also: =====
- 
----- 
  
 === Actions === === Actions ===
Line 125: Line 114:
 * [[:​Triggers|See all Triggers]] * [[:​Triggers|See all Triggers]]
  
----- 
  
 ==== Macros That Use RegEx ==== ==== Macros That Use RegEx ====
Line 150: Line 138:
 ==== Software ==== ==== Software ====
  
-  ​[[http://​www.barebones.com/​products/​textwrangler/|TextWrangler (a freeware text editor ​with PCRE regular expression support)]] +  ​[[http://​www.barebones.com/​products/​bbedit/|BBEdit]] -- A Programming 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]] +    * The commercial demo expires in 30 days and reverts to the still //very// powerful BBEdit-Lite (freeware)
-  - [[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+
  
 +  * [[http://​itunes.apple.com/​us/​app/​patterns-the-regex-app/​id429449079?​mt=12|Patterns]] -- A regular expression analyzer available on the app-store.
 +  * [[https://​itunes.apple.com/​us/​app/​regexrx/​id498370702?​mt=12|RegExRX]] -- A regular expression analyzer available on the app-store.
 +
 +  ''''​
 +
 +  * [[https://​regex101.com|RegEx101.com]] -- An Outstanding and Comprehensive Online RegEx Analyzer.
 +  * [[http://​regexr.com/​|Regexr]] -- Regex testing and explaining, examples and references.
 ==== Books ==== ==== Books ====
  
Line 173: Line 167:
   - [Regular Expressions Quick Start](http://​www.regular-expressions.info/​quickstart.html)   - [Regular Expressions Quick Start](http://​www.regular-expressions.info/​quickstart.html)
   - [[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]] 
- 
----- 
  
 Keywords: ​ //Regular Expression, RegEx, RegExp, Find, Replace, Match// Keywords: ​ //Regular Expression, RegEx, RegExp, Find, Replace, Match//
Regular_Expressions.txt · Last modified: 2019/02/03 11:16 by ccstone