Phone Number Normalization Rule Regular Expressions

The pattern-matching notation of regular expressions makes it possible to quickly parse large amounts of text to find specific character patterns; to extract, edit, replace, or delete text substrings; or to add the extracted strings to a collection in order to generate a report. You use .NET regular expressions to specify the phone pattern and the translation pattern as follows:

  • Phone pattern regular expression. This consists of designators and variables that represent specific sets of numbers. For example, the phone pattern regular expression of ^9(\d{7})$ describes phone numbers that consist of the number 9 followed by any seven digits.
  • Translation pattern regular expression. This consists of the + symbol, numbers, and the $ symbol. The $ symbol captures the items of the phone pattern regular expression that are included inside the parenthesis. The number following the $ symbol must be less than or equal to the total number of captures specified by the phone pattern regular expression.

For example, the translation pattern regular expression of +1425$1 describes a translation that adds a prefix of +1425 to the captures (the phone pattern items in parenthesis). If the phone pattern regular express is ^9(\d{3})(\d{4})$ (containing two captures), the number following the $ sign can only be 1 or 2.

The following table shows sample normalization rules and the corresponding values for the rule name, description, phone pattern, and translation pattern.

Rule Name Description Phone Pattern Translation Pattern Example
4digitExtension Translates 4-digit extensions ^(\d{4})$ +1425555$1 1234 is translated to +14255551234
5digitExtension Translates 5-digit extensions ^8(\d{4})$ +1425558$1 81234 is translated to +14255581234
7digitcallingRedmond Translates 7-digit numbers to Redmond local number ^(\d{7})$ +1425$1 5551212 is translated to +14255551212
7digitcallingDallas Translates 7-digit numbers to Dallas local number ^(\d{7})$ +1972$1 5551212 is translated to +19725551212
10digitcallingUS Translates 10-digit numbers in US ^(\d{10})$ +1$1 2065551212 is translated to +12065551212
LDCallingUS Translates numbers with LD prefix in US ^1(\d{10})$ +1$1 12145551212 is translated to +12145551212
IntlCallingUS Translates numbers with international prefix in US ^011(\d*)$ +$1 011914412345678 is translated to +914412345678
RedmondOperator Translates 0 to Redmond Operator ^0$ +14255551212 0 is translated to +14255551212
RedmondSitePrefix Translates numbers with on-net prefix (6) and Redmond site code (222) ^6222(\d{4})$ +1425555$1 62221234 is translated to +14255551234
NYSitePrefix Translates numbers with on-net prefix (6) and NY site code (333) ^6333(\d{4})$ +1202555$1 63331234 is translated to +12025551234
DallasSitePrefix Translates numbers with on-net prefix (6) and Dallas site code (444) ^6444(\d{4})$ +1972555$1 64441234 is translated to +19725551234

For more information about specifying a phone usage normalization rule, how to use .NET regular expressions to create these rules, and additional sample rules, see the Microsoft Office Communications Server 2007 Enterprise Voice Planning and Deployment Guide available on the Office Communications Server 2007 Technical Library.