====== RegEx ====== **Regular Expressions** [[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 | ----