Difference between revisions of "M4 Regexp Examples"

From Kolmisoft Wiki
Jump to navigationJump to search
Line 35: Line 35:
=== Regexp examples for transformation===
=== Regexp examples for transformation===


{| border="1" cellpadding="2" cellspacing="0"  
{| style="font-family: monospace; font-size: 13px" border="1" cellpadding="5" cellspacing="0"  
| '''Regexp''' || '''Explanation'''  
| '''Transformation''' || '''Original number''' || '''Modified number''' || '''Comment'''
|-  
|-
| ^/.*/999\1/ || Add 999 in front of any string
| /^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 string
|-
|}
|}


<br><br>


<br><br>
= See also =
= See also =
* [[M4 Source Transformation]]
* [[M4 Source Transformation]]

Revision as of 09:10, 1 September 2023

Regexp is used to allow/deny CallerID/Destinations for Origination Points, Termination Points, and Dial Peers.

Basic Regexp operators and building blocks are explained here.

Regexp examples for matching

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 examples for transformation

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 string



See also