使用正则表达式搜索文本

正则表达式是一种简洁灵活的表示法,用于查找和替换文本模式。 可以在 SQL Server Management Studio 的查找和替换对话框查找什么字段中使用一组特定的正则表达式。

通过正则表达式进行查找

  1. 若要在 QuickFindFindinFilesQuick ReplaceReplace in Files作期间在“查找内容”字段中启用正则表达式的使用,请选择“查找选项”下的“使用”选项,然后选择“正则表达式”。

  2. 查找哪些字段”旁边的“三角引用列表”按钮变为可用。 单击此按钮可显示最常用的正则表达式的列表。 从表达式生成器中选择任何项时,它会插入到 查找内容 字符串中。

注释

正则表达式在 查找内容 字符串和在 Microsoft .NET Framework 编程中有效的字符串之间存在语法差异。 例如,在 “查找和替换”中,大括号表示法 {} 用于标记表达式。 因此,表达式“zo{1}”匹配“zo”的所有匹配项,后跟标记 1,如“Alonzo1”和“Gonzo1”。 但在 .NET Framework 中,表示法 {} 用于限定符。 因此,表达式“zo{1}”匹配所有出现的“z”后跟一个“o”的情况,例如“zone”,但不包括“zoo”。

下表描述了 引用列表中可用的正则表达式。

表达式 语法 DESCRIPTION
任何单个字符 . 匹配除换行符以外的任何单个字符。
零个或更多 * 匹配上述表达式的零个或多个匹配项,使所有可能的匹配项。
一个或更多 + 匹配前面表达式的一次或多次出现。
行首 ^ 将匹配字符串定位到行的开头。
行尾 $ 将匹配字符串定位到行尾。
单词开头 < 仅当单词在文本中此处开始时匹配。
单词结尾 > 仅当单词在文本中此时结束时才匹配。
换行符 \n 匹配独立于平台的换行符。 在 Replace 表达式中,插入换行符。
集合中的任意一个字符 [] 匹配 [] 中的任何一个字符。 若要指定字符范围,请列出以短划线(-)分隔的起始字符和结束字符,如 [a-z] 中所示。
不在字符集中任何一个字符 [^...] 与 ^后面的字符集中的任何字符不匹配。
| 匹配 OR 符号之前或之后的表达式(|)。 大多在团队中使用。 例如,(海绵|泥浆)浴与“海绵浴”和“泥浴”匹配。
逃跑 |匹配反斜杠 (\) 后面的字符作为文本。 这样就可以查找正则表达式表示法中使用的字符,例如 { 和 ^。 例如,\^ 用于搜索 ^ 字符。
标记表达式 {} 匹配用封闭表达式标记的文本。
C/C++ 标识符 :我 匹配表达式([a-zA-Z_$][a-zA-Z0-9_$]*)。
带引号的字符串 :q 匹配表达式(“[^”]*“)|('[^']*')).
空格或制表符 :b 匹配空格或制表符。
整数 :z 匹配表达式([0-9]+)。

查找和替换操作中所有有效正则表达式的列表,长度超过了引用列表中可以显示的范围。 还可以将以下任一正则表达式插入“查找内容”的字符串:

表达式 语法 DESCRIPTION
最小值 - 零个或多个 @ 匹配上述表达式的零个或多个匹配项,匹配尽可能少的字符。
最小 - 一个或多个 # 匹配上述表达式的一个或多个匹配项,匹配尽可能少的字符。
重复 n 次 ^n 匹配前面表达式的 n 次出现。 例如,[0-9]^4 匹配任何四位数字序列。
分组 () 对子表达式进行分组。
第 n 个标记文本 \n Find 或 Replace 表达式中,指示第 n 个标记表达式匹配的文本,其中 n 是介于 1 到 9 的数字。

Replace 表达式中,\0 插入整个匹配的文本。
右对齐字段 \(w,n) Replace 表达式中,将第 n 个被标记的表达式在字段中右对齐,该字段至少要有 w 字符宽。
左对齐字段 \(-w,n) Replace 表达式中,将字段中第 n 个标记表达式左对齐,该字段的宽度至少为 字符宽
防止匹配 ~(X) 在表达式中此时出现 X 时,防止匹配。 例如,“real~(ity)” 可以匹配“realty”和“really”中的“real”,但不匹配“reality”中的“real”。
字母数字字符 :a 匹配表达式([a-zA-Z0-9])。
字母字符 :c 匹配表达式([a-zA-Z])。
十进制数字 :d 匹配表达式([0-9])。
十六进制数字 :h 匹配表达式([0-9a-fA-F]+)。
有理数 :n 匹配表达式 ([0-9]+.[0-9]*]|([0-9]*.[0-9]+) |([0-9]+)).
字母字符串 :w 匹配表达式([a-zA-Z]+)。
逃跑 \e Unicode U+001B。
\g Unicode U+0007。
退格键 \h Unicode U+0008。
选项卡 \t 匹配制表符字符,Unicode U+0009。
Unicode 字符 \x#### 或 \u#### 匹配 Unicode 值给出的字符,其中 #### 是十六进制数字。 可以使用 ISO 10646 码位或两个 Unicode 码位指定基本多语言平面(即代理项)之外的字符,从而提供代理项对的值。

下表列出了按标准 Unicode 字符属性匹配的语法。 双字母缩写与 Unicode 字符属性数据库中所列的缩写相同。 这些值可以指定为字符集的一部分。 例如,表达式 [:Nd:Nl:No] 匹配任何类型的数字。

表达式 语法 DESCRIPTION
大写字母 :Lu 匹配任意一个大写字母。 例如,:Luhe 匹配“The”,但与“the”匹配。
小写字母 :Ll 匹配任何一个小写字母。 例如,:Llhe 可以匹配“the”,但不能匹配“The”。
标题大小写字母 :Lt 匹配将大写字母与小写字母(如 Nj 和 Dz)组合在一起的字符。
修饰字母 :Lm 匹配字母或标点符号,例如逗号、叉形重音符和双撇号,用于指示对前面字母的修改。
其他字母 :瞧 匹配其他字母,如哥特体字母 ahsa。
十进制数字 :Nd 匹配十进制数字,例如 0-9 及其全角等效项。
字母数字 :吧 匹配字母数字,如罗马数字和象形数字零。
其他数字 :不 匹配其他数字,例如古老的斜体数字一。
开放式标点 :P 匹配开头标点符号,例如左括号和花括号。
关闭标点符号 Pe 匹配像括号和大括号等末尾标点符号。
引号的初始标点符号 :圆周率 匹配初始双引号。
最后引号标点符号 :P f 匹配单引号和结束双引号。
短划线标点符号 :P d 匹配短划线标记。
连接器标点符号 :个人电脑 匹配下划线或底线标记。
其他标点符号 :P o 匹配 (,), ?, ",!,@,#,%,&, *, \, (:), (;), ' 和 /.
空间分隔符 :Zs 匹配空白部分。
行分隔符 :Zl 匹配 Unicode 字符 U+2028。
段落分隔符 :Zp 匹配 Unicode 字符 U+2029。
非间距标记 :锰 匹配非间距标记。
组合标记 :司仪 匹配组合标记。
封闭标记 :我 匹配封闭标记。
数学符号 :Sm 匹配 +、=、~、|、<和 >。
货币符号 :Sc 匹配 $ 和其他货币符号。
修改符号 :Sk 匹配修饰符符号,例如抑扬符号、重音符号和长音符号。
其他符号 :所以 匹配其他符号,如版权符号、Pilcrow 符号和学位符号。
其他控件 :Cc 匹配行尾。
其他格式 :Cf 设置控件字符(如双向控件字符)的格式。
代理人 :Cs 匹配代理项对的一半。
其他专用用途 :Co 匹配专用区域中的任何字符。
未分配的其他 :Cn 匹配那些无法映射到 Unicode 字符的字符。

除了标准 Unicode 字符属性之外,还可以将以下附加属性指定为字符集的一部分。

表达式 语法 DESCRIPTION
阿尔法 :铝 匹配任意一个字符。 例如,Alhe 能匹配“the”、“then”和“reached”等单词。
数值 :Nu 匹配任意一个数字。
标点 :濮 匹配任何一个标点符号,例如 ?、@、',等等。
空格 :Wh 匹配所有类型的空白,包括排版和表意空白。
Bidi :Bi 匹配从右到左的脚本(如阿拉伯语和希伯来语)中的字符。
韩语 匹配韩国朝鲜文和组合 Jamos。
平假名 :你好 匹配平假名字符。
片假名 :卡 匹配片假名字符。
表意文字/汉字/日文汉字 :Id 匹配表意文字字符,如汉字和假名。

另请参阅

搜索和替换
使用通配符搜索文本