New-CsVoiceRegex

 

上一次修改主题: 2012-03-26

创建用于将电话号码转换为不同格式的正则表达式模式和转换。

语法

New-CsVoiceRegex -AtLeastLength <Int32> [-DigitsToPrepend <String>] [-DigitsToStrip <Int32>] [-StartsWith <String>]

New-CsVoiceRegex -ExactLength <Int32> [-DigitsToPrepend <String>] [-DigitsToStrip <Int32>] [-StartsWith <String>]

详细说明

正则表达式用于匹配字符模式。Microsoft Lync Server 2010 使用正则表达式将电话号码在各种格式之间转换,包括已拨号码、E.164 以及本地专用交换机 (PBX) 和公用电话交换网 (PSTN) 格式。除非您了解使用正则表达式的语法和格式规则,否则定义这些转换规则可能造成用户误解。New-CsVoiceRegex cmdlet 可提供用于指定特定条件的参数,然后生成正则表达式。

使用此 cmdlet 可帮助您生成正则表达式,以用作规范化规则 (New-CsVoiceNormalizationRule) 和出站转换规则 (New-CsOutboundTranslationRule) 的 Pattern 与 Translation 值,以及用作语音路由 (New-CsVoiceRoute) 的 NumberPattern 值。

谁能运行此 cmdlet:默认情况下,以下各组的成员有权在本地运行 New-CsVoiceRegex cmdlet:RTCUniversalServerAdmins。要返回分配了此 cmdlet 的所有基于角色的访问控制 (RBAC) 角色列表(包括您自己创建的任何自定义 RBAC 角色),请从 Windows PowerShell 提示符处运行以下命令:

Get-CsAdminRole | Where-Object {$_.Cmdlets –match "New-CsVoiceRegex"}

参数

参数 必需 类型 描述

AtLeastLength

必需

Int32

字符串(电话号码)要与表达式匹配所需的最小长度。例如,如果要定义一个只影响长度必须至少为 7 个数字(或字符)的号码的规范化规则,请为此参数指定值 7。

您必须为此参数或 ExactLength 参数输入一个值,但不能同时为这两个参数输入值。

ExactLength

必需

Int32

字符串(电话号码)要与正则表达式匹配必须具有的长度。例如,如果希望某个规范化规则只影响 10 位数的号码,请为此参数指定值 10。

您必须为此参数或 AtLeastLength 参数输入一个值,但不能同时为这两个参数输入值。

DigitsToPrepend

可选

字符串

用于指定要添加到电话号码开头的字符或数字的字符串。为此参数输入的值会影响 Translation 值,并会将字符附加到与正则表达式模式匹配的号码之前。例如,如果与该模式匹配的号码为 5551212 并且 DigitsToPrepend 值为 425,则转换后的号码将为 4255551212(假设未应用其他任何转换)。

DigitsToStrip

可选

Int32

要从字符串(电话号码)开头去除的字符数。例如,如果输入的号码为 2065551212 并且 DigitsToStrip 为 3,则该号码将转换为 5551212。

StartsWith

可选

字符串

字符串(电话号码)的第一个字符。除非字符串以 StartsWith 参数中指定的字符串开头,否则与正则表达式将不匹配。例如,如果为 StartsWith 指定了值“+1”,则只有以 +1 开头的号码才会与该模式匹配并进行转换。请注意,StartsWith 字符串中的字符数将包含在 ExactLength 和 AtLeastLength 总数中。例如,如果已指定 ExactLength 为 10 以及指定 StartsWith 字符串为 +1,则匹配的电话号码的长度将为 8 个字符,前面为 +1,总共 10 位。

输入类型

无。

返回类型

创建一个类型为 Microsoft.Rtc.Management.Voice.OcsVoiceRegex 的对象。

示例

-------------------------- 示例 1 --------------------------

$regex = New-CsVoiceRegex -ExactLength 7 -DigitsToStrip 3

此示例创建一个新的正则表达式模式和转换。此表达式包含的模式必须正好为 7 个字符 (-ExactLength 7),并将删除匹配的号码的前三个数字 (-DigitsToStrip 3)。此正则表达式创建的 Pattern 将为 ^\d{3}(\d{4})$,而 Translation 将为 $1。例如,号码 5551212 会与此模式匹配,生成的转换将为 1212:7 位数字去除前 3 个数字。

-------------------------- 示例 2 --------------------------

$regex = New-CsVoiceRegex -AtLeastLength 7 -StartsWith "1"
New-CsVoiceNormalizationRule "global/internal rule" -Pattern $regex.Pattern -Translation $regex.Translation

此示例也创建一个新的正则表达式模式和转换,但随后会使用这些值创建一个新的语音规范化规则。在第一行中,调用 New-CsVoiceRegEx 以创建一个正则表达式,其中匹配的号码必须至少为 7 个字符 (-AtLeastLength 7),并且必须以 1 (-StartsWith "1") 开头。此命令的结果将分配给变量 $regex。

在第二行中,调用 New-CsVoiceNormalizationRule cmdlet。我们为该新规则指定了一个唯一名称,在此示例中即 global/internal rule。然后,以规范化规则的 Pattern 方式分配通过调用 New-CsVoiceRegex 创建的 Pattern:-Pattern $regex.Pattern。我们对 Translation 执行相同的操作,并分配由 New-CsVoiceRegex 调用创建的 Translation:-Translation $regex.Translation。

注意:此示例中创建的 Pattern 为 ^(1\d{5}\d+)$。可以将其解释为一个以 1 (1) 开头的号码,后跟五个数字 (\d{5}),然后跟任意数目的数字 (\d+)。这样总计达到的号码将包含至少 7 位数(1 加 5 加 1 或更多)并以 1 开头,与我们所要求的完全一样。