Regular expression quick start guide
From TBwiki
(Difference between revisions)
Ka-Lok Yeung (Talk | contribs) |
(Added NOT operator) |
||
(19 intermediate revisions by 2 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. | |
− | + | ||
− | + | ||
− | + | ||
− | + | | <br> | |
− | + | |- | |
+ | | | ||
+ | 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). |
− | * [[Toolpack: How to Use RegEx in Remapped Called and Calling Number Mask|How to Use RegEx in Remapped Called and Calling Number Mask]] | + | |
+ | | ''/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 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