正则表达式生成器

通过使用正则表达式生成器,可以生成与所定义的模式匹配的字符串。 可以将正则表达式生成器用于数据类型可接受字符串的任何数据列。 这些数据类型有 char、varchar、varchar(max)、text、nchar、nvarchar、nvarchar(max)、ntext 和 sysname,以及基于这些类型的用户定义类型。 还可以将正则表达式生成器用于公共语言运行时的用户定义类型。

警告

正则表达式生成器不能保证值的唯一性。 因此,它不适用于那些必须具有唯一值的列。

要将正则表达式数据生成器用于某列,必须在“数据生成计划”窗口的“列详细信息”窗格中指定它。 指定正则表达式生成器之后,必须在**“属性”**窗口中设置 Expression 属性。 Expression 属性包含您希望数据匹配的模式。 有关更多信息,请参见指定为列生成数据的详细信息

正则表达式运算符

Expression 属性支持以下正则表达式运算符:

表达式

说明

.

指示任何字符。

\

指示后面的字符应按原义而不是作为特殊字符进行解释。 例如,\. 指示一个文本“.”。

()

将括号内的运算符分组。

{n}

生成前面项的 n 个实例。 例如,a{2} 生成“aa”。

{n,m}

生成前面项的至少 n 个实例但不超过 m 个实例。 例如,a{2,4} 生成“aa”、“aaa”或“aaaa”。

{n,}

生成前面项的 n 个或更多实例。 例如,a{2,} 生成“aa”、“aaa”、“aaaa”、“aaaaa”等。

*

生成前面项的 0 个或多个实例。

+

生成前面项的 1 个或多个实例。

?

生成前面项的 0 个或 1 个实例。

|

在 | 字符任一侧生成项。

[aeiou]

生成括号内的任何字符。

[a-z]

生成字符指定范围内的任何字符。

[^aeiou]

生成除括号内字符以外的任何字符。

正则表达式示例

以下字符串是常见正则表达式的示例:

表达式

说明

(F|M)

性别的简单表示形式。

[1-9][0-9]{2,2}-[1-9][0-9]{2,2}-[0-9]{4,4}

简单电话号码,表示为 800-555-8446

\+1 (425|206)-[1-9][0-9]{2,2}-[0-9]{4,4}

西雅图区域电话号码的国际表示法。

[1-9][0-9]{4}-[0-9]{4}

邮政编码加四位(例如 98008-2405)

[1-6]{1}[0-9]{1,3} (SE|NE|NW|SW) [1-2]{1}[0-9]{1,2}th (ST|CT|PL|AVE), (Redmond, WA 9805[0-9]|Bellevue, WA 9800[1-9]|Sammamish, WA 9807[0-9]|Seattle, WA 9806[0-9]|Issaquah, WA 9808[0-9])

简单街道地址。

Seattle|(New York)|Boston|Miami|Beijing|(Los Angles)|London|Paris

城市名称列表。

[a-z]{5,8}@(hotmail\.com|msn\.com|[a-z]{3,8}\.(com|net|org))

简单电子邮件地址。

[1-9][0-9]{3} [0-9]{4} [0-9]{4} [0-9]{4}

信用卡号码。

请参见

概念

正则表达式语言元素

使用数据生成器生成数据库的测试数据

使用单元测试验证数据库代码