Differences

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

Link to this comparison view

Next revision
Previous revision
system:regex:regex_notation [2017/09/19 10:58]
smayr created
system:regex:regex_notation [2018/04/13 11:52] (current)
smayr [Regex Quick Reference]
Line 2: Line 2:
  
 == Regex Quick Reference == == Regex Quick Reference ==
-[abc]     A single character: a, b or c +^ Symbol       ^ Description ^ 
-[^abc]     Any single character but a, b, or c +[abc]        A single character: a, b or c | 
-[a-z]     Any single character in the range a-z +[<nowiki>^</nowiki>abc]       | Any single character but a, b, or c | 
-[a-zA-Z]     Any single character in the range a-z or A-Z +[a-z]        Any single character in the range a-z | 
-    Start of line +[a-zA-Z]     Any single character in the range a-z or A-Z | 
-$     End of line +| <nowiki>^</nowiki>            | Start of line | 
-\A     Start of string +           Any single character | 
-\z     End of string +\s           | Any whitespace character | 
-    Any single character +\S           | Any non-whitespace character | 
-\s     Any whitespace character +\d           | Any digit | 
-\S     Any non-whitespace character +\D           | Any non-digit | 
-\d     Any digit +\w           | Any word character (letter, number, underscore) | 
-\D     Any non-digit +\W           | Any non-word character | 
-\w     Any word character (letter, number, underscore) +(...)        Capture everything enclosed | 
-\W     Any non-word character +(a<nowiki>|</nowiki>b)        a or b | 
-\b     Any word boundary character +a?           | Zero or one of a | 
-(...)     Capture everything enclosed +a*           | Zero or more of a | 
-(a|b)     a or b +a+           | One or more of a | 
-a?     Zero or one of a +a{3}         | Exactly 3 of a | 
-a*     Zero or more of a +a{3,}        3 or more of a | 
-a+     One or more of a +a{3,6}       | Between 3 and 6 of a |
-a{3}     Exactly 3 of a +
-a{3,}     3 or more of a +
-a{3,6}     Between 3 and 6 of a+
  
-options:  +General Tokens: 
-  i case insensitive  +^ Symbol       ^ Description ^ 
-  m make dot match newlines  +| \n           | Newline | 
-  x ignore whitespace in regex  +| \r           | Carriage return | 
-  o perform #{...} substitutions only once+| \t           | Tab | 
 +| \f           | Form-feed | 
 +| \0           | Null character | 
 + 
 +Anchors: 
 +^ Symbol       ^ Description ^ 
 +| \G           | Start of match | 
 +| <nowiki>^</nowiki>            | Start of string | 
 +| \A           | Start of string | 
 +| $            | End of string | 
 +| \Z           | End of string | 
 +| \z           | Absolute end of string | 
 +| \b           | Any word boundary character | 
 +| \B           | Any non-word boundary | 
 +| \w           | Any word character (letter, number, underscore) | 
 +| \W           | Any non-word character | 
 + 
 +Flags/Modifiers (eg: "/regex here.../g")
 +^ Symbol       ^ Description  ^  
 +| g  | Global (do not return after first match) | 
 + | Case insensitive | 
 +| m  | Multiline (dot matches newlines, <nowiki>^</nowiki> and $ match start/end of line)  | 
 +| s  | Single line (dot matches newline) | 
 +| u  | Unicode (match with full unicode) |  
 + | eXtended (ignore whitespace) |  
 +| X  | eXtra (disallow meaningless excapes|  
 + | Perform #{...} substitutions only once 
 +| A  | Anchored (anchor to start of pattern) |  
 +| J  | Duplicate group names (allow duplicate subpattern names) |  
 +| D  | Dollar end only ($ matches only end of pattern) |  
 + 
 +== Using Regex in PHP == 
 + 
 +Can be used as ''ereg()'' or ''preg_match()'' Here is a comparison: 
 +<code php> 
 +<?php  
 +if(ereg('[^0-9A-Za-z]',$test_string)) // will be true if characters arnt 0-9, A-Z or a-z.  
 + 
 +if(preg_match('/[^0-9A-Za-z]/',$test_string)) // this is the preg_match version. the /'s are now required.  
 +?> 
 +</code> 
 + 
 +Using options: 
 +<code php> 
 +<?php 
 +// The "i" after the pattern delimiter indicates a case-insensitive search 
 +if (preg_match("/php/i", "PHP is the web scripting language of choice.")) { 
 +    echo "A match was found."; 
 +} else { 
 +    echo "A match was not found."; 
 +
 +?> 
 +</code> 
 + 
 +Example using ''preg_replace()'': 
 +<code php> 
 +// Strip ending commas 
 +$str = preg_replace('/,$/s', '', $str); 
 + 
 +// Strip leading/trailing commas with whitespace around 
 +$str = preg_replace('/^[,\s]+|[\s,]+$/', '', $str); 
 +</code> 
 + 
 +== References == 
 +  * [[http://www.rexegg.com/regex-quickstart.html|Regex Cheat Sheet]] 
 +  * [[https://regex101.com|Regex 101]]