Regular expression quick start guide
From TBwiki
(Difference between revisions)
(Added NOT operator) |
|||
(14 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
{| cellpadding="2" border="1" | {| cellpadding="2" border="1" | ||
|- | |- | ||
− | ! | + | ! width="250" align="left" | Regular Expression Pattern |
! align="left" | Explanations | ! align="left" | Explanations | ||
! align="left" | Examples<br> | ! align="left" | Examples<br> | ||
|- | |- | ||
− | | | + | | Meta characters [\^$.|?*+(<br> |
| | | | ||
− | Special caracters used in regex. | + | Special caracters used in regex. |
*Must be escape with backslash "\" to use a literal characters. | *Must be escape with backslash "\" to use a literal characters. | ||
− | | | + | | <br> |
|- | |- | ||
| | | | ||
− | Literal characters<br> | + | Literal characters<br> |
| | | | ||
− | All characters (except the metacharacters) match a single instance of themselves. <br> | + | All characters (except the metacharacters) match a single instance of themselves. <br> |
*{ and } are literal characters, unless they're part of a valid regular expression token (e.g. the {n} quantifier). | *{ and } are literal characters, unless they're part of a valid regular expression token (e.g. the {n} quantifier). | ||
Line 25: | Line 25: | ||
| ''/a/'' matches "a"<br> | | ''/a/'' matches "a"<br> | ||
|- | |- | ||
− | | <br> | + | | [characters]<br> |
− | | <br> | + | | Character classes or character set. A character class matches a single character out of all the possibilities offered by the character class.<br> |
− | | <br> | + | | ''/[0-9]/'' matches a single digit<br> |
+ | |- | ||
+ | | [\d]<br> | ||
+ | | Shorthand character classes matching digits. Same as [0-9].<br> | ||
+ | | ''/[\d]/'' matches a single digit<br> | ||
+ | |- | ||
+ | | .<br> | ||
+ | | Dot matches any characters.<br> | ||
+ | | ''/a.c/'' matches both "a4c" and "ayc"'''<br>''' | ||
|- | |- | ||
| ^ | | ^ | ||
− | | Matches | + | | Matches at the start of the string the regex pattern is applied to. Matches a position rather than a character. |
| <br> | | <br> | ||
|- | |- | ||
| $ | | $ | ||
− | | Matches the end of a | + | | Matches at the end of the string the regex pattern is applied to. Matches a position rather than a character. |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | {m,n}<br> |
− | | Matches | + | | Matches at least “m” and at most “n” occurrences of preceeding character, character class or group.<br> |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | * |
− | | Matches | + | | Matches '''zero '''or '''more '''occurrences of preceeding character, character class or group. |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | + |
− | | | + | | Matches '''one '''or '''more '''occurrences of preceeding character, character class or group.'''<br>''' |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | ? |
− | | Matches zero or | + | | Matches '''zero '''or '''one '''occurrences of preceeding character, character class or group. |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | () |
− | | | + | | Parentheses are used for group or capturing group<br> |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | \0, \1, \2, ... |
− | | | + | | Substitute the value matched by the nth grouped sub-expression, used in remapped fields. |
| <br> | | <br> | ||
|- | |- | ||
− | | | + | | ?! |
− | + | | Not, as in "everything except this". | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | | + | |
| <br> | | <br> | ||
|} | |} | ||
− | <br> | + | <br> Examples<br> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Here are some examples: | Here are some examples: | ||
Line 128: | Line 80: | ||
Add 2720 prefix: | Add 2720 prefix: | ||
− | /(\d+)/2720\1/ | + | /^(\d+)$/2720\1/ |
or | or | ||
− | /([0-9]*)/2720\1/ | + | /^([0-9]*)$/2720\1/ |
Strip first 4 digits: | Strip first 4 digits: | ||
− | /([0-9]{4})([0-9]*)/\2/ | + | /^([0-9]{4})([0-9]*)$/\2/ |
Strip # and 7 first digits: | Strip # and 7 first digits: | ||
− | /([#])([0-9]{7})([0-9]*)/\3/ | + | /^([#])([0-9]{7})([0-9]*)$/\3/ |
== Web Online Tools == | == Web Online Tools == | ||
− | *Regular builder tool : [http://www.gskinner.com/RegExr www.gskinner.com/RegExr] | + | *Regular builder tool (with replace) : [http://www.gskinner.com/RegExr www.gskinner.com/RegExr] |
+ | Tips to use: | ||
+ | # No need to enclose the Regular expression with '/'. | ||
+ | # Replace : the regular expression must be split in two parts and '\' replaced by '$'. For example, with '/^([0-9]*)$/2720\1/', the '^([0-9]*)$' would be filled on the first line and '2720$1' on the second line. | ||
+ | |||
*Ruby regular expression editor and tester : [http://rubular.com rubular.com]<br> | *Ruby regular expression editor and tester : [http://rubular.com rubular.com]<br> | ||
== References == | == References == | ||
− | |||
*[[Toolpack: How to Use RegEx in Remapped Called and Calling Number Mask|How to Use RegEx in Remapped Called and Calling Number Mask]] | *[[Toolpack: How to Use RegEx in Remapped Called and Calling Number Mask|How to Use RegEx in Remapped Called and Calling Number Mask]] | ||
<br> | <br> |
Latest revision as of 10:04, 31 January 2014
Quick Reference Table
Regular Expression Pattern | Explanations | Examples |
---|---|---|
Meta characters [\^$.|?*+( |
Special caracters used in regex.
|
|
Literal characters |
All characters (except the metacharacters) match a single instance of themselves.
|
/a/ matches "a" |
[characters] |
Character classes or character set. A character class matches a single character out of all the possibilities offered by the character class. |
/[0-9]/ matches a single digit |
[\d] |
Shorthand character classes matching digits. Same as [0-9]. |
/[\d]/ matches a single digit |
. |
Dot matches any characters. |
/a.c/ matches both "a4c" and "ayc" |
^ | Matches at the start of the string the regex pattern is applied to. Matches a position rather than a character. | |
$ | Matches at the end of the string the regex pattern is applied to. Matches a position rather than a character. | |
{m,n} |
Matches at least “m” and at most “n” occurrences of preceeding character, character class or group. |
|
* | Matches zero or more occurrences of preceeding character, character class or group. | |
+ | Matches one or more occurrences of preceeding character, character class or group. |
|
? | Matches zero or one occurrences of preceeding character, character class or group. | |
() | Parentheses are used for group or capturing group |
|
\0, \1, \2, ... | Substitute the value matched by the nth grouped sub-expression, used in remapped fields. | |
?! | Not, as in "everything except this". | |
Examples
Here are some examples:
Add 2720 prefix:
/^(\d+)$/2720\1/
or
/^([0-9]*)$/2720\1/
Strip first 4 digits:
/^([0-9]{4})([0-9]*)$/\2/
Strip # and 7 first digits:
/^([#])([0-9]{7})([0-9]*)$/\3/
Web Online Tools
- Regular builder tool (with replace) : www.gskinner.com/RegExr
Tips to use:
- No need to enclose the Regular expression with '/'.
- Replace : the regular expression must be split in two parts and '\' replaced by '$'. For example, with '/^([0-9]*)$/2720\1/', the '^([0-9]*)$' would be filled on the first line and '2720$1' on the second line.
- Ruby regular expression editor and tester : rubular.com
References