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
system:regex:regex_notation [2017/09/19 11:00]
smayr
system:regex:regex_notation [2018/04/13 11:52] (current)
smayr [Regex Quick Reference]
Line 4: Line 4:
 ^ Symbol       ^ Description ^ ^ Symbol       ^ Description ^
 | [abc]        | A single character: a, b or c | | [abc]        | A single character: a, b or c |
-| [\^abc]       | Any single character but a, b, or c |+| [<nowiki>^</nowiki>abc]       | Any single character but a, b, or c |
 | [a-z]        | Any single character in the range a-z | | [a-z]        | Any single character in the range a-z |
 | [a-zA-Z]     | Any single character in the range a-z or A-Z | | [a-zA-Z]     | Any single character in the range a-z or A-Z |
-\^            | Start of line +<nowiki>^</nowiki>            | Start of line |
-| $            | End of line | +
-| \A           | Start of string | +
-| \z           | End of string |+
 | .            | Any single character | | .            | Any single character |
 | \s           | Any whitespace character | | \s           | Any whitespace character |
Line 18: Line 15:
 | \w           | Any word character (letter, number, underscore) | | \w           | Any word character (letter, number, underscore) |
 | \W           | Any non-word character | | \W           | Any non-word character |
-| \b           | Any word boundary character | 
 | (...)        | Capture everything enclosed | | (...)        | Capture everything enclosed |
-| (a|b)        | a or b |+| (a<nowiki>|</nowiki>b)        | a or b |
 | a?           | Zero or one of a | | a?           | Zero or one of a |
 | a*           | Zero or more of a | | a*           | Zero or more of a |
Line 28: Line 24:
 | a{3,6}       | Between 3 and 6 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]]