Digit Translations

Last Updated : Oct 16, 2023 |
Prolog information
The MS Teams Dial plan forms use regex strings to perform digit translations (see Creating a Dial Plan). For these, it is important to understand the role of ( ) brackets in the original digit pattern and the $ elements in the translations.
The strings use ( ) brackets to group elements in the original match. The translations refer to each pair of brackets using the format $n in the translation. That is, $1 represents the characters matched by the regex pattern in the first pair of brackets, $2 the second pair of brackets, and so on.
Regex numbers the brackets in order of the opening ( bracket symbols from left-to-right in the original patterns. That includes patterns with nested bracket pairs, for example ((\+44)|(044)|(0)) contains $1 [((\+44)|(044)|(0))], $2 [(\+44)] , $3 [(044)], and $4 [(0)].
  • Note: In these examples, spaces in the numbers are just present for readability and do not represent actual spaces in the number strings.
Name
Original Number
Pattern
Translation
Translated Number
Add UK 01632 area code to any 6-digit numbers
309348
^(\d{6})$
01632$1
01632 309348
Add US 416 area code to 7-digit numbers
555 0134
^(\d{7})$
416$1
416 555 0134
Change 00 prefix numbers to E.164 format
0044 1632 309348
^00(.+)$
+1$1
+44 1632 309348
001 416 555 0134
+1 416 555 0134
Change E.164 format numbers to non-E.164 format
+44 1632 309348
^\+(.*)$
00$1
0044 1632 309348
+1 416 555 0134
001 416 555 0134
Convert an international number back to a national number
0044 1632 309348
^(00|\+)44(.+)$
0$2
01632 309348
+44 1632 309348
01632 309348