Regular expression quick start guide: Difference between revisions
Ka-Lok Yeung (talk | contribs) No edit summary |
(Added NOT operator) |
||
| (20 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
== Quick Reference Table<br> == | |||
< | |||
{| cellpadding="2" border="1" | |||
|- | |||
! width="250" align="left" | Regular Expression Pattern | |||
! align="left" | Explanations | |||
! align="left" | Examples<br> | |||
|- | |||
| Meta characters [\^$.|?*+(<br> | |||
| | |||
Special caracters used in regex. | |||
*Must be escape with backslash "\" to use a literal characters. | |||
Strip first 4 digits: | | <br> | ||
/([0-9]{4})([0-9]*)/\2/ | |- | ||
| | |||
Literal characters<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). | |||
| ''/a/'' matches "a"<br> | |||
|- | |||
| [characters]<br> | |||
| Character classes or character set. A character class matches a single character out of all the possibilities offered by the character class.<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 at the start of the string the regex pattern is applied to. Matches a position rather than a character. | |||
| <br> | |||
|- | |||
| $ | |||
| Matches at the end of the string the regex pattern is applied to. Matches a position rather than a character. | |||
| <br> | |||
|- | |||
| {m,n}<br> | |||
| Matches at least “m” and at most “n” occurrences of preceeding character, character class or group.<br> | |||
| <br> | |||
|- | |||
| * | |||
| Matches '''zero '''or '''more '''occurrences of preceeding character, character class or group. | |||
| <br> | |||
|- | |||
| + | |||
| Matches '''one '''or '''more '''occurrences of preceeding character, character class or group.'''<br>''' | |||
| <br> | |||
|- | |||
| ? | |||
| Matches '''zero '''or '''one '''occurrences of preceeding character, character class or group. | |||
| <br> | |||
|- | |||
| () | |||
| Parentheses are used for group or capturing group<br> | |||
| <br> | |||
|- | |||
| \0, \1, \2, ... | |||
| Substitute the value matched by the nth grouped sub-expression, used in remapped fields. | |||
| <br> | |||
|- | |||
| ?! | |||
| Not, as in "everything except this". | |||
| <br> | |||
|} | |||
<br> Examples<br> | |||
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) : [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> | |||
== References == | |||
*[[Toolpack: How to Use RegEx in Remapped Called and Calling Number Mask|How to Use RegEx in Remapped Called and Calling Number Mask]] | |||
<br> | |||
Latest revision as of 11: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