正则表达式生成器
通过使用正则表达式生成器,可以生成与所定义的模式匹配的字符串。 可以将正则表达式生成器用于数据类型可接受字符串的任何数据列。 这些数据类型有 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} |
信用卡号码。 |