The gMan nixWiki

Because the mind is made of Teflon...

User Tools

Site Tools


cheat_sheets_regex

Differences

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

Link to this comparison view

Next revision
Previous revision
cheat_sheets_regex [2022/09/25 13:48] – created gmancheat_sheets_regex [2023/02/11 14:34] (current) – [Groups and Ranges] gman
Line 4: Line 4:
  
 [[https://cheatography.com/davechild/cheat-sheets/regular-expressions/|Good Cheat Sheet]] | [[https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285|Basic Explanation]] [[https://cheatography.com/davechild/cheat-sheets/regular-expressions/|Good Cheat Sheet]] | [[https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285|Basic Explanation]]
 +
 +
 +===== Anchors =====
 +
 +^  Syntax  ^ Description                                             ^
 +|  %%^%%   | Start of string, or start of line in multi-line pattern |
 +|  $       | End of string, or end of line in multi-line pattern     |
  
 ---- ----
  
 +===== Quantifiers =====
 +
 +^  Syntax    ^ Description                                 ^
 +|  *         | 0 or more                                   |
 +|  ?         | 0 or 1                                      |
 +|  +         | 1 or more                                   |
 +|  {3}       | Exactly 3                                   |
 +|  {3,}      | 3 or more                                   |
 +|  {3,5}     | 3, 4 or 5                                   
 +|  //note//  | Add a ? to a quantifier to make it ungreedy |
 +
 +----
 +
 +===== Escape =====
 +
 +^  Syntax  ^ Description                ^
 +|  \       | Escape following character |
 +
 +**//­Esc­api­ng//** is a way of treating characters which have a special meaning in regular expres­sions literally, rather than as special charac­ters.
 +
 +----
 +
 +===== Groups and Ranges =====
 +
 +^  Syntax      ^ Description                        ^
 +|  .           | Any character except new line (\n) |
 +|  (a%%|%%b)   | a or b                             |
 +|  (...)       | Group, capturing                   |
 +|  (?:...)     | Passive (non-c­apt­uring) group      | 
 +|  [abc]       | Range (a or b or c)                |
 +|  [%%^%%abc]  | Not (a or b or c)                  | 
 +|  [a-q]       | Lower case letter from a to q      |
 +|  [A-Q]       | Upper case letter from A to Q      | 
 +|  [0-7]       | Digit from 0 to 7                  |
 +
 +Use a group to "capture and replace".
 +  * ''a(bc)'' parentheses create a capturing group with value ''bc''
 +  * The parentheses are used to create "groups," which then get assigned a base-1 index, accessible in a //replace// with a ''$'' (i.e., the first parentheses-bounded (characters) become a group that can be referenced by ''$1'', the second group would be ''$2'', the third ''$3'', etc.).
 +  * NOTE: in **gedit** you reference with a backslash: ''\'' not a ''$'' (i.e., ''\1\2\3'', etc.).
 +  * See the follow table regarding **string replacements**.
 +
 +----
 +
 +===== String Replac­ement =====
 +
 +^  Syntax      ^ Description           ^
 +|  $n  | nth non-pa­ssive group         |
 +|  $2  | %%"­xyz­" in /^(abc­(xy­z))$/%%   |
 +|  $1  | %%"­xyz­" in /^(?:a­bc)­(xyz)$/%% |
 +|  $`  | Before matched string         |
 +|  $'  | After matched string          |
 +|  $+  | Last matched string           |
 +|  $&  | Entire matched string         |
 +
 +**Note:** Some regex implem­ent­ations use \ instead of $.
 +
 +----
 +
 +===== Character Classes =====
 +
 +^  Syntax  ^ Description   ^
 +|  \c  | Control character |
 +|  \s  | White space       |
 +|  \S  | Not white space   |
 +|  \d  | Digit             |
 +|  \D  | Not digit         |
 +|  \w  | Word              |
 +|  \W  | Not word          |
 +|  \x  | Hexade­cimal digit |
 +|  \O  | Octal digit       |
 +
 +----
 +
 +===== POSIX =====
 +
 +^  Syntax      ^ Description                    ^
 +|  [:upper:  | Upper case letters             |
 +|  [:lower:  | Lower case letters             |
 +|  [:alpha:  | All letters                    |
 +|  [:alnum:  | Digits and letters             |
 +|  [:digit:  | Digits                         |
 +|  [:xdigit: | Hexade­cimal digits             |
 +|  [:punct:  | Punctu­ation                    |
 +|  [:blank:  | Space and tab                  |
 +|  [:space:  | Blank characters               |
 +|  [:cntrl:  | Control characters             |
 +|  [:graph:  | Printed characters             |
 +|  [:print:  | Printed characters and spaces  |
 +|  [:word:   | Digits, letters and underscore |
 +
 +----
  
cheat_sheets_regex.1664113681.txt.gz · Last modified: by gman