适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
以下正则表达式可以替换 SQL Server Management Studio“查找和替换”对话框的“查找内容”字段中的字符或数字。
先决条件
如何启用正则表达式
以下是在搜索中启用正则表达式的步骤。
- 转到“编辑”>“查找和替换>“快速查找”。
- 在搜索栏旁边,选择“向下箭头”>“在文件中查找”。
- 在 “查找和替换 ”窗口中,展开 “查找”选项,然后选择“ 使用正则表达式”。
“查找内容”字段旁边的“表达式生成器”按钮将变为可用状态。 选择此按钮可显示一组可用的正则表达式。 从 表达式生成器中选择任何项时,它将插入 到“查找”中的字符串 中。
下表对“表达式生成器”中提供的正则表达式进行了说明。
| 表达式 | DESCRIPTION |
|---|---|
. |
与任何单个字符匹配(换行符除外)。 |
.* |
零次或多次匹配任何字符 |
.+ |
一次或多次匹配任何字符 |
[abc] |
匹配 abc 集中的任何字符 |
[^abc] |
匹配不在 abc 集中的任何字符 |
\d |
匹配任意数字字符 |
(?([^\r\n])\s) |
与任何空格字符匹配 |
\b |
在单词的开头或结尾匹配 |
^ |
在行首匹配 |
.$ |
匹配任何换行符 |
\w\r?\n |
匹配行尾的单词字符 |
(dog | cat) |
捕获表达式 dog | cat 并对其进行隐式编号 |
(?<pet>dog | cat) |
捕获子表达式 dog | cat 并将其命名为 pet |
例子
一些使用正则表达式的示例。
示例 1:查找所有 select 语句
想要查找 T-SQL 脚本中的所有 SELECT 语句。
SELECT\s+.*\s+FROM
示例 1 说明
-
SELECT\s+:匹配后跟一个或多个空格字符的单词SELECT。 -
.*:匹配任何字符(行终止符除外)零次或多次。 -
\s+FROM:匹配一个或多个空格字符,后跟单词FROM。
示例 2:查找具有特定命名模式的过程
想要查找以 T-SQL 脚本开头 usp_ 的所有存储过程。
CREATE\s+PROCEDURE\s+usp_[A-Za-z0-9_]+
示例 2 说明
-
CREATE\s+PROCEDURE\s+:匹配后跟一个或多个空格字符的单词CREATE PROCEDURE。 -
usp_:与文本字符串usp_匹配。 - [A-Za-z0-9_]+:匹配一个或多个字母数字字符或下划线。
示例 3:在 T-SQL 脚本中查找注释
你想要在 T-SQL 脚本中标识所有单行注释(以 --开头)。
--.*
示例 3 说明
-
--:与文本字符串--匹配。 -
.*:匹配任何字符(行终止符除外)零次或多次。
示例 4:查找所有更新语句
想要查找 T-SQL 脚本中的所有 UPDATE 语句。
UPDATE\s+.*\s+SET
示例 4 说明
-
UPDATE\s+:匹配后跟一个或多个空格字符的单词UPDATE。 -
.*:匹配任何字符(行终止符除外)零次或多次。 -
\s+SET:匹配一个或多个空格字符,后跟单词SET。
示例 5:在 DDL 语句中查找表名
你想要从 CREATE TABLE T-SQL 脚本中的语句中提取表名。
CREATE\s+TABLE\s+(\w+)
示例 5 说明
-
CREATE\s+TABLE\s+:匹配后跟一个或多个空格字符的单词CREATE TABLE。 -
(\w+):匹配一个或多个单词字符(字母数字和下划线),并捕获它们进行提取。
有关更多示例,请参阅 Visual Studio 中的正则表达式