M4 Regexp Examples
From Kolmisoft Wiki
(Redirected from M2 Regexp Examples)
Jump to navigationJump to search
Basic Regexp operators and building blocks are explained here.
Regexp for matching
Regexp matching is used in:
- Origination Points
- CLI/ANI Allow (Whitelist)
- CLI/ANI Deny (Blacklist)
- CLD/DNIS Allow (Whitelist)
- CLD/DNIS Deny (Blacklist)
- Termination Points
- CLI/ANI Allow (Whitelist)
- CLI/ANI Deny (Blacklist)
- CLD/DNIS Allow (Whitelist)
- CLD/DNIS Deny (Blacklist)
- Dial Peers
- Source regexp
- Source deny regexp
- Destination Regexp
- Destination deny regexp
Validate regex
The regex can be validated using https://regexr.com/ (or any other online regex editor).
Examples
Regexp | Explanation |
.* | everything |
^[0-9]+$ | only digits |
^[0-9]{9,}$ | only digits, number more than 8 digits (9, 10, 11...) |
^[0-9]{0,9}$ | only digits, number less than 9 digits (1, 2, 3, 4, 5, 6, 7, 8) |
^\+?[0-9]+$ | optional + sign and only digits |
^370[0-9]+$ | only digits starting with 370 |
^370.*$ | anything starting with 370 |
^(37[0-1]|44)[0-9]*$ | only digits starting with 370 or 371 or 44 |
^380(67|97|68|98)[0-9]*$|^998[0-9]+$ | only digits starting with 380(67,97,68,98) or 998(0-9), where 380(67,97,68,98) = 38067,38097,38068,38098 and 998(0-9) = 9980,...,9988,9989. |
^380(67|97|68|98)[0-9]{5,9}$|^998[0-9]{5,9}$ | only digits starting with 380(67,97,68,98) or 998, but number of digits after each prefix should be between 5 and 9. So, for example, 3809712345 will match, but 380971234 or 380971234567890 will NOT match. |
^370[138][0-9]+$ | only digits starting with 3701, 3703, 3708 |
Regexp for transformation
Regexp transformation is used in:
- Origination Points
- CLI/ANI Regexp Transformation Rule
- CLD/DNIS Regexp Transformation Rule
- PAI Transformation
- RPID Transformation
- Termination Points
- CLI/ANI Regexp Transformation Rule
- CLD/DNIS Regexp Transformation Rule
- RPID from OP Transformation
- PAI from OP Transformation
Format
Regexp transformation format is:
/match_expression/replacement_expression/flags
- match_expression - POSIX regular expression
- replacement_expression - replacement expression with back references (explained here) to matched tokes: \1, \2, …, \9
- flags (optional):
- i - match ignore case
- g - replace all matches
Before putting Transformations into production, it is advisable to test them on various values.
Test in Linux console
Execute sed command (add s before transformation s/regex/replacement/flags):
echo '00370123456789' | sed -E 's/^00//'
Test in online sed live editor
If you do not have access to the Linux console, use https://sed.js.org/ (or any other online sed editor).
Examples
Transformation | Original number | Modified number | Comment |
/^00// | 003701234567 | 003701234567 | Cut prefix 00 |
/^370/8/ | 370123456789 | 8123456789 | Replace 370 with 8 |
/\+// | +370123456789 | 370123456789 | Cut + (here + is escaped by \ since it is special regex symbol) |
/\+370/86/ | +370123456789 | 86123456789 | Cut prefix +370, add prefix 86 |
/\+?(.*)/+\1/ | 370123456789 | +370123456789 | Add + if it is not present already |
/(.*)/999\1/ | 370123456789 | 999370123456789 | Add 999 in front of any number |
/(.*)/999$CIP\1/ | 370123456789 | 999888370123456789 | $CIP is a variable that contains Code from MNP database (if MNP is used and if number is matched). This variable only works on Destination Transformation Regexp. The example assumes that there is a record in the MNP database with Code 888 for number 370123456789. |